我的主要活动中有这段代码
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工作吗?
感谢
答案 0 :(得分:2)
替换:
if(title=="Edit") {
使用:
if(title.equals( "Edit" ) ) {
它也将第一次运作。
答案 1 :(得分:0)
最好使用equalIgnoreCase而不是equals as equalignore忽略cps开/关按钮的情况......