我正在尝试做这样的事情:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
//multiListener = false;
menu.add(0,START_DELETE,0, "Delete selected..").setEnabled(multiListener);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.multiselect:
if(multiselect == 0) { multiselect = 1;
multiListener = true;
Log.d("DH", "index="+multiListener);
}
else if(multiselect == 1) { multiselect = 0; multiListener = false;
Log.d("DH", "index="+multiListener);
}
fillData();
return true;
case START_DELETE:
Toast.makeText(Notepadv3.this, "Pressed delete", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
基本上,如果 multiListener = true;使“删除选定的..”可按下,否则将其变灰...
这个简单的东西..不想和我一起锻炼,
不知何故...按钮总是灰色的,尽管 Log 说,它变为 true...
有人知道吗?
最佳答案
您应该再次调用 setEnabled()
来更改项目的状态。它的状态不绑定(bind)到变量。此方法应在 onPrepareOptionsMenu()
中调用。
关于android - 使用 .setEnabled() 启用/禁用选项菜单按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7375101/