0

这是我用于菜单项选择的代码:

public boolean onOptionsItemSelected(MenuItem item) {
      switch (item.getItemId()) {
      case R.id.menu_settings:
            showDialog(1);
            return true;

      default:
            return super.onOptionsItemSelected(item);
      }
 }

菜单中只有一个选项,我使用以下代码设计了一个 customDialog:

protected Dialog onCreateDialog(int id) {

        Context mContext = getApplicationContext();
        Dialog dialog = new Dialog(mContext);

        dialog.setContentView(R.layout.custom_dialog);
        dialog.setTitle("About Us");

        TextView text = (TextView) dialog.findViewById(R.id.text);
        text.setText("App Created By: Prateek Garg (garg.prateek1@gmail.com)");
        ImageView image = (ImageView) dialog.findViewById(R.id.image);
        image.setImageResource(R.drawable.logo_resumes);
        return dialog;
        }
}

问题是每当我按下菜单项“关于我们”时,应用程序都会自行关闭。我无法纠正任何错误,但我希望你们可以。

提前致谢。PS。我在 onCreateOptionsMenu() 中创建了 menuInflator() 。

干杯

LOGCAT 显示以下错误:[我不知道如何理解或删除它们... :( ]

07-27 23:35:04.569: W/dalvikvm(648): threadid=1: 线程以未捕获的异常退出 (group=0x40a13300)

07-27 23:35:04.659:E/AndroidRuntime(648):致命异常:主要

07-27 23:35:04.659: E/AndroidRuntime(648): android.view.WindowManager$BadTokenException: 无法添加窗口 -- 令牌 null 不适用于应用程序

07-27 23:35:04.659: E/AndroidRuntime(648): 在 android.view.ViewRootImpl.setView(ViewRootImpl.java:589)

07-27 23:35:04.659: E/AndroidRuntime(648): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:326) 等等。

如果你们这么说,我也会包括其余的错误,但我认为它们只是因为前 1 或 2 个而形成的,通常情况下

4

1 回答 1

1

强制关闭很可能是空指针异常。实际上有几种方法可能会发生这种情况,但很可能其中一个 UI 元素不可用。这可能是因为它不在您为视图/对话框指定的布局中,或者因为您未能为视图调用 setContentView(R.layout.layoutName)。另一种可能性是像 TextView 这样没有指定高度和宽度值的项目。在大多数 UI 元素上,这是必需的,并且会导致运行时错误。为了看到logcat goto window->show view -->logcat

运行时错误将显示为红色。如果它关闭应用程序,它通常会包含致命的单词。所以转到 logcat 中的那个点。查找第一行,您可以在其中看到类似 com.mypackage.test.MyActivity 或 MyDialog 的内容。这条线将是红色的。确保它是带有您的包名称的一个,因为该错误也会指向很多系统内容。单击该行,它将带您到代码中发生崩溃的位置。同时发布错误。您应该始终在 StackOverflow 上发布错误消息。

于 2012-07-27T17:52:12.077 回答