如何在onOptionsItemSelected事件后更改ActionBar项目中的某些文本?

时间:2013-04-29 08:19:46

标签: android android-actionbar

我在我的应用程序中使用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项目标题。

2 个答案:

答案 0 :(得分:1)

如果您想要更改MenuItem的标题,请点击其他项目,您可以执行以下操作:

private String 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;

}

答案 1 :(得分:0)

尝试item.setTitle("new title")

或者,如果来自其他项目,则菜单会显示findItem