プログラムでメニューオプションを選択する方法はありますか?基本的には、特定のメニューオプションを押すのと同じアクションを実行するビューのボタンが必要です。私はonOptionsItemSelected(MenuItem項目)を呼び出そうとしていましたが、メニュー項目を何に入れるべきかわかりません。Android - プログラムでメニューオプションを選択する
9
A
答えて
13
両方のUIイベントで共通のメソッドを呼び出すのはなぜですか?
15
はいメニューオプションを選択する方法があります。そして、あなたはここにonOptionsItemSelected(MenuItemの項目)を呼び出すについて正しいのMenuItemを取得する方法である:
1)あなたがする必要がある最初の事はここにあなたの活動の内部Menuクラスの参照を取得します:
private Menu menu;
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
this.menu = menu;
return super.onCreateOptionMenu(menu);
}
2)基本的に、Menuクラスにはすべてのメニュー項目が含まれています。
onOptionsItemSelected(menu.findItem(R.id.action_id));
... action_idは、選択したいメニュー項目のIDです:あなたはこの参照を持って一度だから、あなたはこのようなメニューのクリックをシミュレートします。このIDはメニューのxmlで見つけることができます。
0
私はこれも探していました。項目がチェックされたときに使用されるメソッドを呼び出すことは意味がありますが、UIでチェックされたメニュー項目は設定されません。
それでは、私がやってしまったことはした
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
MenuItem menuItem = (MenuItem)navigationView.getMenu().findItem(R.id.nav_menu_item_1);
menuItem.setChecked(true);
onNavigationItemSelected(menuItem);
私のために、必要に応じて、以下は動作しませんでした:
onOptionsItemSelected(menu.findItem(R.id.action_id)); )
関連する問題
- 1. Android:プログラムでJelly BeanのWebViewでテキスト選択モードをトリガーする
- 2. 選択メニューオプションに基づいてCookieを作成しますか?
- 3. IEでプログラムでオプションを選択する
- 4. プログラムでタブ順でプログラムを選択
- 5. ハイパーリンクボタンをプログラムで選択
- 6. プログラムで領域を選択する
- 7. 更新MD-選択プログラムで
- 8. 私はメニューオプションを一度選択します。 onOptionsItemSelectedは2回呼び出されます。 (Android)
- 9. Androidレイアウトフォルダをプログラムで選択することはできますか?
- 10. dijit選択ウィジェットの選択値をプログラムで設定
- 11. Dojo:拡張グリッドのチェックボックスをプログラムで選択/非選択
- 12. Androidでデフォルトのアクションを選択する
- 13. Android:アンドロイドデータベースでクエリを選択
- 14. テキストエディットでテキスト範囲をプログラムで選択
- 15. richtextbox(vb.net)でテキストをプログラムで逆選択
- 16. WPFでtabItemをプログラムで選択
- 17. SmartGWTツリーグリッドでノードをプログラムで選択
- 18. Eclipseでのプログラムによる選択
- 19. jQuery UIの選択可能なウィジェットをプログラムで '非選択'にする
- 20. Android:プログラムでクリックされたリストビュー項目を選択状態に設定する
- 21. Android:選択肢を一度に選択する方法AlertDialog?
- 22. WPFの選択をプログラムでクリアComboBox
- 23. プログラムでdatagridviewの行を選択
- 24. 選択範囲(FlowDocument)プログラム
- 25. AndroidをListViewで選択し、選択するボタンを押してください
- 26. Android PopupWindowウィンドウフォーカス/選択
- 27. .net DataGridViewプログラムでのみ選択
- 28. HTMLで選択オプションを選択する
- 29. Androidがボタン選択を追跡する
- 30. Androidリストビュー選択を削除する
最も簡単な答えはしばしば最高です;)+1 – Squonk
私は分割したくないすべてのメニュー項目に対して、onOptionsItemSelected()に共有コードをいくつか持っています。そして、メニューオプションを呼び出す簡単な方法があると私はちょっと思っていました。 – dt0
@ dt0コードをリファクタリングしてDRYとかなりのものにする方法は常にあります。特にそれがあなたのコードである場合は特にそうです。共有コードがランタイム変数の束である場合、おそらく、すべてを1つの場所に格納する構造を使用できます。それが機能的なものなら、多分それをユーティリティメソッドに分解することができます。常に方法があります。私はUIイベントを別のイベントから呼び出さないことを強く検討します。あなたのコードの表現力について考えるなら、メニューはクリックされなかったので、メニュークリックイベントを呼び出すことはちょっと奇妙です。 – Rich