2017-05-29 39 views
-1

我正在開發一個簡單的日曆存儲事件和每個事件的兩種不同HashMaps這樣一個事件和其他在這裏的相應事件的時間的時間是我的代碼:日期住空(安卓)

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); 
     } 

     } 

問題是變量(時間)保持爲空導致崩潰,我想知道爲什麼?

+0

什麼是logcat說關於你不明白的崩潰?你有一個'ParseException'嗎?如果是,那麼日期將爲空 –

+0

在解析頂部try catch中的日期時,你確定沒有獲得堆棧跟蹤嗎? – Juan

回答

0

您可以修復nullpointerexception,但您需要以不同的方式解決該ParseException。

嘗試把它扔

void eventMaker(String d, String ev) throws ParseException 

,並清除嘗試捕捉那裏做任何你調用該方法


一旦你的運行,檢查logcat的消息,看你的約會格式錯誤

1

對不起,我有一個解析異常,我沒有注意到。我只是濫用分析和格式化方法...很抱歉造成這種不便。