0
    public void onTimeChanged(TimePicker tp, int hour, int min){
        tp.setOnTimeChangedListener(null);
        Integer a = new Integer(5);
        if(a == null){
            Log.d("ff", "integer IS null");
        } else {
            Log.d("ff", "integer is NOT null");
        }
        if(tp == null){
            Log.d("ff", "tp IS null");
        } else {
            Log.d("ff", "tp is NOT null");
        }
        tp.setCurrentMinute(a);
        tp.setOnTimeChangedListener(this);
    }

这是我的TimePicker#OnTimeChangedListenertp.setCurrentMinute(a)导致NullPointerException. 我试过使用 int 和 Integer - 都不起作用。tp 不为空, a 也不是。在模拟器上工作得很好,但在运行 2.2 的手机上不行。

4

1 回答 1

2

从文档中:

public void setOnTimeChangedListener (TimePicker.OnTimeChangedListener onTimeChangedListener)
自:API 级别 1

设置指示时间已被用户调整的回调。

回调的参数
onTimeChangedListener不应为空。

您将侦听器设置为 null,然后当您调用 .setCurrentMinute(a) 时,TimePicker 在尝试通知 null 侦听器时给出 NullPointerException

于 2011-08-08T14:05:17.170 回答