1

時間を設定するために timepickerdialog を使用するアクティビティに取り組んでいます。しかし、ダイアログボックスから時間を設定した後、続行すると例外が発生します

なので:

java.lang.RuntimeException: Unable to pause activity
Caused by: java.lang.NullPointerException
at android.widget.TimePicker.updateInputState(TimePicker.java:995)
at android.widget.TimePicker.onSaveInstanceState(TimePicker.java:640)
at android.view.View.dispatchSaveInstanceState(View.java:13561)

私のコードは次を使用します:

  1. オンクリック

    showDialog(END_TIME_PICKER_ID);
    
  2. protected void onPrepareDialog(int id, ダイアログ ダイアログ)

      case END_TIME_PICKER_ID :
            endHourOfDay = mEndCalendar.get(Calendar.HOUR_OF_DAY);
             endMinuteOfDay = mEndCalendar.get(Calendar.MINUTE);
    
            ((TimePickerDialog) dialog).updateTime(endHourOfDay, endMinuteOfDay);
            ((TimePickerDialog) dialog).show();
            break;
    
  3. 保護されたダイアログ onCreateDialog(int id)

     case END_TIME_PICKER_ID :
      return new TimePickerDialog(this, mEndTimeSetListener, endHourOfDay, endMinuteOfDay, false);
    
  4. on 時間設定リスナー

     private TimePickerDialog.OnTimeSetListener mEndTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
    public void onTimeSet(TimePicker view, int hourOfDay, int minute)
    {
        endHourOfDay = hourOfDay;
        endMinuteOfDay = minute;
     GregorianCalendar endCalendar = (GregorianCalendar) mEndCalendar.clone();
        endCalendar.set(Calendar.DAY_OF_MONTH, mStartCalendar.get(Calendar.DAY_OF_MONTH));
        endCalendar.set(Calendar.HOUR_OF_DAY, endHourOfDay);
        endCalendar.set(Calendar.MINUTE, endMinuteOfDay);
        endCalendar.set(Calendar.SECOND, second);
     }
    

したがって、上記のスニペットを実行し、タイムピッカーを設定した後、再生ボタンをクリックして次のアクティビティに移動すると、このアプリケーションがクラッシュします。次に、行って再生します(新しいアクティビティ)

戻るキーをクリックすると、別のエラーが発生します。

     java.lang.RuntimeException: Unable to start activity ComponentInfo

[OK] をクリックすると、アクティビティ グループ内の既定のアクティビティで再びアクティビティ グループから開始されます。

これらの問題はすべて、タイムピッカー ダイアログが原因だと思います。(時間を編集するために) タイムピッカー ダイアログを開かない場合、すべて正常に動作します。

timepickerdialog コードに問題がある場合はお知らせください。

4

2 に答える 2

-1

Null pointer occurs when your using variable or object without initializing it or your trying to access variable or object before declaring or initializing it

use logcat to get error after getting error in logcat go to that error by double clicking on it then you can get that object/variable which you are using before initialising /declaring it

you need to declare/initialze that object before it actualy using it

于 2014-08-04T10:07:09.853 に答える