[英]How do I set the intent of menu items defined in an Android menu xml file?
如何設置在Android菜單xml文件中定義的菜單項的意圖? 例如我目前有...
<menu xmlns:android="http://schemas.android.com/apk/res/android" android:name="Main Menu">
<item android:title="@string/resume_game" android:icon="@drawable/resume"></item>
<item android:title="@string/play_golf" android:icon="@drawable/play_golf"></item>
<item android:title="@string/my_rounds" android:icon="@drawable/my_rounds"></item>
</menu>
在我的活動中,我重寫了以下方法...
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main_menu, menu);
final MenuItem menuItem = (MenuItem) menu.findItem(R.id.about_item);
return true;
}
synic所說的是正確的,並且這種方法確實允許您響應所選菜單項,但我不相信這會回答問題,即如何設置XML文件中定義的菜單項的意圖。
話雖如此,這個問題使我感到困惑,因為很明顯,您只需在所指示的菜單項上調用menuItem.setIntent()即可:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main_menu, menu);
final MenuItem menuItem = (MenuItem) menu.findItem(R.id.about_item);
menuItem.setIntent(myIntent);
return true;
}
如果Benju不知道如何創建Intent,並且認為Intent是響應菜單項的唯一方法,那么synic的答案就很明確了。
給每個菜單項指定一個ID,例如android:id =“ @ + id / resume_game”,然后可以定義onOptionItemsSelected()方法:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.resume_game:
resumeGame();
return true;
case R.id.play_golf:
playGolf();
return true;
}
return super.onOptionsItemSelected(item);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.