メニュー項目のAndroid IDを取得する方法はありますか?getTitle()は表示されますが、getId()は表示されません)。ID値「menu_printer_settings」に興味があります。タイトル値「printer_settings」とメニュー項目ID(getItemId())。MonkeyTalkスクリプトをローカライズされたビルドでも機能させるには、このIDが必要です。
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item
Android:id="@+id/menu_printer_settings"
Android:title="@string/printer_settings"
/>
ソリューション1:
MenuItem item
String[] id = getResources().getResourceName(item.getItemId()).split("\\/");
次に、id [1]にアクセスします
ソリューション2:
titleCondensedを使用して、idと一致させます。例:.
<menu>
<item Android:id="@+id/myid"
Android:title="some menu title"
Android:titleCondensed="myid"/>
...
</menu>
その後
String selectedMenuIdString = (String) item.getTitleCondensed();
ID名を繰り返す必要がないため、ソリューション1の方が好きです。
お役に立てれば。よろしくスティーブ
これを試して:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_printer_settings:
//do what you want
break;
}
}
それでも問題が解決しない場合は、getItemID()を使用してみてください。
Menuオブジェクトを使用して、IDを取得することもできます。
menu.findItem(R.id.navigation_featured).getItemId()