Date Stays Null(Android)

时间:2017-05-29 14:21:55

标签: java android date nullpointerexception

我正在开发一个简单的日历,它将事件和每个事件的时间存储在2个不同的哈希映射中,一个用于事件,另一个用于相应事件的时间,这是我的代码:

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

        }

问题是变量(时间)保持为空,导致崩溃,我想知道为什么?

2 个答案:

答案 0 :(得分:1)

对不起,伙计们有一个我没注意到的解析异常。我只是误用了解析和格式化方法......很抱歉给您带来不便。

答案 1 :(得分:0)

您可以修复nullpointerexception,但需要以不同方式解决该ParseException。

尝试扔掉它

void eventMaker(String d, String ev)  throws ParseException 

然后删除那里的try catch,并在你调用该方法的任何地方执行

运行后,检查logcat消息以查看日期格式是否错误