簡體   English   中英

如何設置在Android菜單xml文件中定義的菜單項的意圖?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM