1

我在我的应用程序中使用 ActionBar,我希望当用户单击按钮时,ActionBar 中的项目应该更改文本。

这是我的代码onOptionsItemSelected()

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.action_refresh:
        Toast.makeText(this, "Menu Item 1 selected", Toast.LENGTH_SHORT)
                .show();
        finish();
        break;
    case R.id.lg:

        Toast.makeText(getBaseContext(), "ma", Toast.LENGTH_SHORT).show();
        break;

    case R.id.French:

        Toast.makeText(getBaseContext(), "zaki", Toast.LENGTH_SHORT).show();

        break;
    case R.id.nerlandais:
        Toast.makeText(getBaseContext(), "brahim", Toast.LENGTH_SHORT)
                .show();

    }

    return true;
}

我必须怎么做才能从另一个项目更改项目标题?

示例:当我单击法语项目时,我想更改 nerlandais 项目标题。

4

2 回答 2

1

如果你想改变一个MenuItem点击另一个项目的标题,你可以这样做:

私有字符串 mMenuItemTitle;

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getSupportMenuInflater().inflate(R.menu.menu_main, menu);

    MenuItem item = menu.findItem(R.id.nerlandais);
    item.setText(mMenuItemTitle);

    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.French:
        Toast.makeText(getBaseContext(), "zaki", Toast.LENGTH_SHORT).show();
        mMenuItemTitle = "My New Title";
        supportInvalidateOptionsMenu();
        break;
    }

return true;

}

于 2013-04-29T08:36:57.420 回答
0

试试item.setTitle("新标题")

或者,如果来自另一个项目,则菜单具有findItem

于 2013-04-29T08:26:21.563 回答