onPrepareOptionsMenu(Menu)メソッドから、たくさんのprocessng時間を消費するバックグラウンドスレッドがメニュー(メニューボタンではない)の表示とクリックをほとんど不可能にするので、私はメニューを表示しようとしていたときにスレッドを停止しました。スレッドが停止した後、メニューを表示してクリックすると(メニューボタンではなく)、はるかに管理しやすくなります。メニューが表示された直後に「戻る」キーが押されたときに問題が発生しました。ユーザーが 'back'キーを押すと、スレッドを再起動する必要があります。 public void onOptionsMenuClosed(Menu menu)メソッドを組み込むと、メニューが表示された直後に押された 'back'キーは、void onOptionsMenuClosed(Menu menu)メソッドを実行しました。しかし、メニューの1つからサブメニューを表示してから、「戻る」キーを押すと、void onOptionsMenuClosed(メニューメニュー)メソッドが実行されませんでした。誰かがこの質問に答えることができれば本当にありがたいです。onOptionsMenuClosed()は、メニューが表示された直後に '戻る'キーが押されたときに実行されます。 BUT
1
A
答えて
0
それが唯一のメインメニューサブませんメニューのために呼ばれています、ので、それが呼び出されていない..あなたはonOptionsItemSelected(MenuItem item)
内のいくつかのフラグを追加するのではとのようなonBackPressed
の内側に思うかもしれませんので:
boolean isSubMenuItemPressed;
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.subMenuItem://the item that contains the submenu
isSubMenuItemPressed = true;
break;
}
}
public void onBackPressed() {
if(isSubMenuItemPressed){// do what you want
isSubMenuItemPressed = false;}
}
関連する問題
- 1. キーが押されて保持されたときに確実にステートメントが実行されます。
- 2. android:Doneキーが押されたときにSoftkeyboardがアクションを実行
- 3. デフォルトのキーが押されたときにボタンが押された効果を表示
- 4. 戻るボタンが押されたときにオプションメニューが表示されるかどうかを検出します。
- 5. AndroidのBackキーを押したときにメソッドが実行されました
- 6. アクティビティが表示された後にAsyncTaskを実行します。
- 7. 戻るボタンが押されたときにJavaScriptファイルがキャッシュされる
- 8. UIMenuControllerが表示された直後に解除されています
- 9. 戻るボタンを押した後にオプションメニューが表示されない
- 10. 値がスクロールされた後にUITableViewに表示されます
- 11. ビューコントローラを押した後に、ナビゲーションバーの影が表示される
- 12. ホームキーを押した後にAndroidサービスが実行される
- 13. プッシュされたUIViewControllerに戻るボタンが表示されない
- 14. XMLが取得された後にProgressDialogが表示される
- 15. NavigationBarがモダリティに表示されたときにdetailContControllerが表示される
- 16. ListViewが非表示に設定された後にボタンが表示される
- 17. Yii:submitButtonが押されたときに関数を実行
- 18. jQueryが実行されずにページに表示されます
- 19. キーが押されたときに音を鳴らす
- 20. JavaScriptが実行されてからキーが押されるまで
- 21. スケールアニメーションから戻った後にボタンが表示されない
- 22. メソッドが実行された後にループプログラムが再度実行される
- 23. キーボードが表示された後にはじめて表示される
- 24. 私はクロムで戻るときに隠れたドロップダウンが表示されない
- 25. キーが押されたときにjQueryキー押しイベントが繰り返し発生しますが、すべてのキーには反映されません
- 26. Javaストリーム - キーがリストに表示されたときのグループ化
- 27. スクリプトが実行された後にjQueryUIダイアログボタンを表示するには
- 28. MKMapViewのMKAnnotation(ピン)がタッチされた/押された/クリックされたときのTableViewの表示
- 29. 戻るボタンをクリックすると最後に保護されたページが表示されます
- 30. レンダリングではプロップが定義されていませんが、最初にコンポーネントがマウントされたときにレンダリングの戻り値が表示されます
時間を割いて非常に感謝し、質問に答えるあなたが提供したコードをテストします。 – user1161829
私は、コードをテストせずに、メニューの1つからサブメニューの1つを表示してから、「戻る」キーを押すと、onOptionsItemSelected()メソッドは実行されないため、機能しません。どのサブメニューも選択せず、単に「戻る」キーを押すだけです。さらに、メニューボタンが押されている間は、フォーカスがアクティビティクラス(私の場合はMapActivity)にないので、onBackPressed()メソッドは動作しないと思います。 onPrepareOptionsMenuにブール値を設定し、onBackPressed()をチェックすることでそのシナリオをテストしました。 – user1161829
あなたの答えがそのようになった理由を知りました。私はサブメニューの1つをクリックしなかったが、メニューの1つからサブメニューを表示してから、戻るキーを押す。 – user1161829