Как установить назначение пунктов меню, определенных в XML-файле меню Android? - PullRequest
0 голосов
/ 26 марта 2010

Как установить назначение пунктов меню, определенных в XML-файле меню Android? Например, у меня сейчас есть ...

<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;
    }

Ответы [ 2 ]

6 голосов
/ 10 ноября 2011

То, что 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;
}

Если Бенджу не знает, как создавать намерения, и считает, что намерения - это единственный способ реагировать на пункты меню, то ответ synic - точный.

4 голосов
/ 26 марта 2010

Дайте каждому из ваших пунктов меню идентификатор, например, 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);
}   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...