Android: показывать пункты меню в Activity с вкладками - PullRequest
0 голосов
/ 11 октября 2011

Я хочу показать пункты меню в упражнении, в котором размещены представления вкладок. Вот код моей деятельности по просмотру вкладок.

public class Tabs3 extends TabActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final TabHost tabHost = getTabHost();

        tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("list")
                .setContent(new Intent(this, List1.class)));

        tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("photo list")
                .setContent(new Intent(this, List8.class)));
    }

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        menu.removeGroup(0);

        menu.add(0, 0, 0, "Home").setIcon(
                android.R.drawable.ic_menu_preferences);

        return super.onPrepareOptionsMenu(menu);
    }

    @Override
    public boolean onMenuItemSelected(int featureId, MenuItem item) {
        switch (item.getItemId()) {
        case 0:
            setResult(10);
            finish();
            return true;
        }

        return super.onMenuItemSelected(featureId, item);
    }
}

Теперь, когда я нажимаю кнопку меню Android, вызывается onPrepareOptionsMenu, что правильно, но когда я выбираю пункт меню, ничего не происходит. Я также отладил свой код, и контроль не достиг onMenuItemSelected.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 11 октября 2011

Я получил свое решение .. я не знаю, является ли это идеальным способом сделать это, но оно работает ..

вместо onMenuItemSelected, я просто использовал onOptionsItemSelected и мой код работает.

Вот окончательный код:

public class Tabs3 extends TabActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final TabHost tabHost = getTabHost();

        tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("list")
                .setContent(new Intent(this, List1.class)));

        tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("photo list")
                .setContent(new Intent(this, List8.class)));
    }

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        menu.removeGroup(0);

        menu.add(0, 0, 0, "Home").setIcon(
                android.R.drawable.ic_menu_preferences);

        return super.onPrepareOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case 0:
            setResult(10);
            finish();
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
...