android如何在onOptionsItemSelected中更改操作项标题

时间:2013-01-05 04:41:04

标签: android menuitem

我的主要活动中有这段代码

public boolean onOptionsItemSelected(MenuItem item) {

   int itemId = item.getItemId();

   if (itemId == R.id.menu_edit) {

        CharSequence title = item.getTitle();
        Log.d("onOptionsItemSelected", "menu_edit title=" + title);
        if(title=="Edit") {
            // switch to RUn
            item.setTitle("Run");
        } else {
            // switch to Edit
            item.setTitle("Edit");
        }
    }

    return super.onOptionsItemSelected(item);

}

按钮定义如下

    android:id="@+id/menu_edit"
    android:orderInCategory="102"
    android:showAsAction="ifRoom|withText"
    android:title="Edit"/>

基本思路是“编辑”按钮切换为“运行”,按下时返回。它有点工作,除了我第一次按它它什么都不做,然后它工作正常:注意这是一个项目在操作栏上,而不是在菜单中所以我不认为onPrepareOptionsMenu有帮助,因为按下按钮时没有调用在行动栏上。

有人可以建议一种方法来获得第一次点击以使setTitle工作吗?

感谢

2 个答案:

答案 0 :(得分:2)

替换:

if(title=="Edit") {

使用:

if(title.equals( "Edit" ) ) {

它也将第一次运作。

答案 1 :(得分:0)

最好使用equalIgnoreCase而不是equals as equalignore忽略cps开/关按钮的情况......