0

これは私がメニュー項目の選択に使用したコードです:

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

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

メニューにはオプションが1つしかなく、次のコードを使用して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;
        }
}

問題は、メニュー項目「About Us」を押すたびに、アプリが強制終了することです。エラーが発生した場合は修正できませんが、修正できることを願っています。

前もって感謝します。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):android.view.WindowManagerImpl.addView(WindowManagerImpl.java:326)およびその他多数。

皆さんがそう言うなら、残りのエラーも含めますが、一般的にそうであるように、最初の1つまたは2つのためにそれらが形成されていると思います

4

1 に答える 1

1

強制クローズは、ほとんどの場合、NULL ポインター例外です。実際にはいくつかの方法でこれが発生する可能性がありますが、ほとんどの場合、UI 要素の 1 つが利用できません。これは、ビュー/ダイアログに指定したレイアウトにないか、ビューの setContentView(R.layout.layoutName) の呼び出しに失敗したことが原因である可能性があります。もう 1 つの可能性は、高さと幅の値を指定しない TextView のような項目です。ほとんどの UI 要素ではこれが必要であり、実行時エラーが発生します。logcat を表示するには、ウィンドウに移動 -> ビューを表示 --> logcat

実行時エラーは赤色で表示されます。アプリを閉じると、通常、致命的な単語が含まれます。logcat のそのポイントに移動します。com.mypackage.test.MyActivity や MyDialog などの最初の行を探します。この行は赤になります。エラーは多くのシステム関連のものも指すため、パッケージ名が含まれていることを確認してください。その行をクリックすると、クラッシュが発生したコード内のポイントに移動します。エラーも投稿します。エラー メッセージは常に StackOverflow に投稿する必要があります。

于 2012-07-27T17:52:12.077 に答える