特定のビューでボタンが押されるたびにカスタムダイアログを表示しようとしています。しかし、ボタンを含むビューに切り替えるときはいつでも強制終了エラーが発生します。 LogCatは、私がリスナーを設定するために使用しているメソッドでNullPointerExceptionを与えていますが、私はホエイにエラーがあるとは確信していません。私はそれがDialogコードかもしれないと思うが、Android Developersのサイトの仕様に書いている。ボタンからshowDialog()メソッドを呼び出すときにNullPointerExceptionが発生する
@Override
protected Dialog onCreateDialog(int id) {
Dialog dialog = new Dialog(this);
switch(id) {
case TIME_PICKER_DIALOG:
showTimePicker();
case DAY_CHECKBOX_DIALOG:
showDayPicker();
}
return onCreateDialog(id);
}
ここshowDayPicker()メソッド(私が原因とされてもよいと思うものである:
//Registers the listeners for the various buttons in the edit view
private void registerButtonListenersAndSetDefaultText() {
mTimeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(TIME_PICKER_DIALOG);
}
});
updateTimeButtonText();
mDayButton.setOnClickListener(new View.OnClickListener() { //here is where
//the error is
//being thrown.
public void onClick(View v) {
showDialog(DAY_CHECKBOX_DIALOG);
}
});
}
onCreateDialog()メソッドである。ここで:ここ
ボタンのリスナーと方法があります問題):
private Dialog showDayPicker() {
Dialog dialog = new Dialog(ScheduleEditActivity.this);
dialog.setContentView(R.layout.day_picker_dialog);
dialog.setTitle("Choose A Day");
return dialog;
}
そして、ここではLogCatです:
10-19 20:23:57.191: ERROR/AndroidRuntime(293): FATAL EXCEPTION: main
10-19 20:23:57.191: ERROR/AndroidRuntime(293): java.lang.RuntimeException: Unable to start activity ComponentInfo{vt.nhw.android.easyringertoggle/vt.nhw.android.easyringertoggle.ScheduleEditActivity}: java.lang.NullPointerException
10-19 20:23:57.191: ERROR/AndroidRuntime(293): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
10-19 20:23:57.191: ERROR/AndroidRuntime(293): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
10-19 20:23:57.191: ERROR/AndroidRuntime(293): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
10-19 20:23:57.191: ERROR/AndroidRuntime(293): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
10-19 20:23:57.191: ERROR/AndroidRuntime(293): at android.os.Handler.dispatchMessage(Handler.java:99)
10-19 20:23:57.191: ERROR/AndroidRuntime(293): at android.os.Looper.loop(Looper.java:123)
10-19 20:23:57.191: ERROR/AndroidRuntime(293): at android.app.ActivityThread.main(ActivityThread.java:4627)
10-19 20:23:57.191: ERROR/AndroidRuntime(293): at java.lang.reflect.Method.invokeNative(Native Method)
10-19 20:23:57.191: ERROR/AndroidRuntime(293): at java.lang.reflect.Method.invoke(Method.java:521)
10-19 20:23:57.191: ERROR/AndroidRuntime(293): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-19 20:23:57.191: ERROR/AndroidRuntime(293): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-19 20:23:57.191: ERROR/AndroidRuntime(293): at dalvik.system.NativeStart.main(Native Method)
10-19 20:23:57.191: ERROR/AndroidRuntime(293): Caused by: java.lang.NullPointerException
10-19 20:23:57.191: ERROR/AndroidRuntime(293): at vt.nhw.android.easyringertoggle.ScheduleEditActivity.registerButtonListenersAndSetDefaultText(ScheduleEditActivity.java:52)
10-19 20:23:57.191: ERROR/AndroidRuntime(293): at vt.nhw.android.easyringertoggle.ScheduleEditActivity.onCreate(ScheduleEditActivity.java:39)
10-19 20:23:57.191: ERROR/AndroidRuntime(293): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-19 20:23:57.191: ERROR/AndroidRuntime(293): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
10-19 20:23:57.191: ERROR/AndroidRuntime(293): ... 11 more
P.S.私は前にこの質問を投稿しましたが、実際の質問のボディは複雑になり、削除して再転記しました。ご協力いただきありがとうございます!
'mTimeButton'と' mDayButton'は 'Button'を参照していますか?問題は 'showDialog'ではなく' onCreate'です。 – DeeV
エラー32行目でエラーが発生しています。vt.nhw.android.easyringertoggle.ScheduleEditActivity.registerButtonListenersAndSetDefaultText(ScheduleEditActivity.java:52) にあるlogcatエラーをダブルクリックすると、エラー –
になりますコード内の行番号を見ることなく伝えます。スタックトレースは 'ScheduleEditActivity.java'の52行目を指しています –