当我尝试在菜单中更新我的MenuItem时,我收到了IndexOutOfBoundsException。
我在xml中添加了menu_item,我可以在enable()== false时看到它。
我的代码:
public boolean onPrepareOptionsMenu(Menu menu) {
if ( enable() ) {
MenuItem menuItem= menu.getItem(R.id.menu_item);
menuItem.setEnabled(true);
}
return super.onPrepareOptionsMenu(menu);
}
如何处理问题?
干杯。
答案 0 :(得分:47)
刚遇到同样的问题。如果您不小心使用getItem()
而不是findItem()
,则会发生。
MenuItem menuItem= menu.findItem(R.id.menu_item);
答案 1 :(得分:1)
您可能需要清理项目以更新R的值。 如果您更喜欢其他方式,可以
for(int i = 0; i<menu.size();++i)
{
if(menu.getItem(i).getItemId() == R.id.menu_item)
MenuItem menuItem = menu.getItem(i);
}
或选择更漂亮的
menu.findItem(R.id.menu_item);