2017-05-29 5 views
-1

イベントとイベントの2つの異なるハッシュマップにイベントを保存するシンプルなカレンダーを開発しています。対応するイベントの時刻は次のとおりです。日付はNull(Android)のままです

SimpleDateFormat evTime = new SimpleDateFormat("HH:mm"); 
    SimpleDateFormat month = new SimpleDateFormat("MMMM - YYYY"); 
    SimpleDateFormat day = new SimpleDateFormat("MMM dd yyyy"); 


    HashMap<Date, ArrayList<String>> hmap = new HashMap<>(); 
    HashMap<Date, ArrayList<String>> hmap2 = new HashMap<>(); 

    void eventMaker(String d, String ev) { 

     Date date = null; 
     Date time = null; 
     try { 
      date = day.parse(d); 
      time = evTime.parse(d); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 
     long epoch = date.getTime(); 
     Event event = new Event(Color.RED,epoch,ev); 
     compactCalendar.addEvent(event); 

     if(!hmap.containsKey(date)){ 
      ArrayList<String> eventList = new ArrayList<>(); 
      eventList.add(ev); 
      hmap.put(date,eventList); 

      ArrayList<String> eventTimes = new ArrayList<>(); 
      eventTimes.add(time.toString()); 
      hmap2.put(date,eventTimes); 
     } 
     else{ 
      ArrayList<String> eventList = hmap.get(date); 
      eventList.add(ev); 
      hmap.put(date,eventList); 

      ArrayList<String> eventTimes = hmap2.get(date); 
      eventTimes.add(time.toString()); 
      hmap2.put(date,eventTimes); 
     } 

     } 

問題は、変数(time)がnullのままでクラッシュすることです。その理由を知りたいのですが?

+0

あなたが理解していないクラッシュについてlogcatとは何ですか?あなたは 'ParseException'を取得しますか?はいの場合、日付はNULLになります –

+0

一番上にあるtryキャッチの日付を解析する際にスタックトレースを取得していませんか? – Juan

答えて

0

nullpointerexceptionを修正することはできますが、そのParseExceptionに対処する必要があります。

あなたは、実行すると、あなたの日付かどうかを確認するためにlogcatメッセージを確認することをしたら、あなたが


そのメソッドを呼び出すどこでもそれを

void eventMaker(String d, String ev) throws ParseException 

を投げてみて、そこにtryキャッチを削除し、それを行います形式が間違っています

1

残念ながら私が気付かなかったパーズの例外がありました。私はちょうど解析とフォーマットの方法を誤用しました...このご迷惑をおかけして申し訳ありません。

関連する問題