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#OnTimeChangedListenerです。tp.setCurrentMinute(a)を引き起こしますNullPointerException。int と Integer を使用してみましたが、どちらも機能しません。tp は null ではなく、 a もそうではありません。エミュレーターでは問題なく動作しますが、2.2 を実行している電話では動作しません。

4

1 に答える 1

2

ドキュメントから:

public void setOnTimeChangedListener (TimePicker.OnTimeChangedListener onTimeChangedListener)
以降: API レベル 1

ユーザーが時刻を調整したことを示すコールバックを設定します。

パラメータ
onTimeChangedListenerコールバック。null であってはなりません。

リスナーをnullに設定している場合、.setCurrentMinute(a)を呼び出すと、nullリスナーに通知しようとしているときにTimePickerがNullPointerExceptionを返します

于 2011-08-08T14:05:17.170 に答える