onOptionsItemSelected
メソッド内からAlertDialog
と表示される問題が発生しています。つまり、ユーザーが削除オプションボタンを押して、dbから項目を削除する前に削除を確認する必要があります。私の現在のコードを実行すると、プログラムがクラッシュします。誰かが助けることを願っています。感謝:)AlertDialogが表示されずクラッシュする
ここで私は
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.detailsmenu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch(item.getItemId()) {
case R.id.rename:
openRenameDialog();
return true;
case R.id.delete:
openDeleteDialog();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void openDeleteDialog() {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle(R.string.deleteTitle);
alert.setMessage(R.string.deleteMessage);
alert.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// todo
}
});
alert.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
alert.show();
}
Logcat出力持っているもののコードスニペットです:
07-17 14:16:57.845: WARN/KeyCharacterMap(2304): No keyboard for id 0 07-17 14:16:57.845: WARN/KeyCharacterMap(2304): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 07-17 14:17:01.564: WARN/ResourceType(2304): getEntry failing because entryIndex 24 is beyond type entryCount 24 07-17 14:17:01.564: WARN/ResourceType(2304): Failure getting entry for 0x7f040018 (t=3 e=24) in package 0 (error -2147483647) 07-17 14:17:01.564: DEBUG/AndroidRuntime(2304): Shutting down VM 07-17 14:17:01.574: WARN/dalvikvm(2304): threadid=1: thread exiting with uncaught exception (group=0x40015560) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): FATAL EXCEPTION: main 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): android.content.res.Resources$NotFoundException: String resource ID #0x7f040018 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at android.content.res.Resources.getText(Resources.java:201) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at android.content.Context.getText(Context.java:173) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at android.app.AlertDialog$Builder.setMessage(AlertDialog.java:318) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at tod.dosetracker.DetailsActivity.openDeleteDialog(DetailsActivity.java:63) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at tod.dosetracker.DetailsActivity.onOptionsItemSelected(DetailsActivity.java:48) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at android.app.Activity.onMenuItemSelected(Activity.java:2205) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:748) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:532) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at android.view.View$PerformClick.run(View.java:9080) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at android.os.Handler.handleCallback(Handler.java:587) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at android.os.Handler.dispatchMessage(Handler.java:92) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at android.os.Looper.loop(Looper.java:123) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at android.app.ActivityThread.main(ActivityThread.java:3683) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at java.lang.reflect.Method.invokeNative(Native Method) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at java.lang.reflect.Method.invoke(Method.java:507) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 07-17 14:17:01.594: ERROR/AndroidRuntime(2304): at dalvik.system.NativeStart.main(Native Method) 07-17 14:17:01.604: WARN/ActivityManager(60): Force finishing activity tod.dosetracker/.DetailsActivity 07-17 14:17:02.114: WARN/ActivityManager(60): Activity pause timeout for HistoryRecord{407e38f0 tod.dosetracker/.DetailsActivity} 07-17 14:17:11.615: WARN/ActivityManager(60): Launch timeout has expired, giving up wake lock! 07-17 14:17:12.156: WARN/ActivityManager(60): Activity idle timeout for HistoryRecord{406dbd10 tod.dosetracker/.FoodListActivity} 07-17 14:17:17.388: WARN/ActivityManager(60): Activity destroy timeout for HistoryRecord{407e38f0 tod.dosetracker/.DetailsActivity}
私のテストアプリケーションでコードを試したところ、私は 'AlertDialog'を作成していました。コードのどこかでエラーが発生しているようです。あなたはスタックトレースを投稿できますか? – Wroclai
私はlogcatをtxtファイルに出力しましたが、かなり大きかったです。ファイルを投稿する方法はありますか?申し訳ありませんが、私の最初の投稿はST – Arcadia
です。上記のlogcat出力を投稿しました:) – Arcadia