我不是要改变主图标,只是一个菜单项的图标。
图标基本上显示我当时是否正在录制。我在使用
点击时更改图标item.setIcon(R.drawable.recordstart);
在这种方法中。
public boolean onOptionsItemSelected(MenuItem item) {
...
} else if (item.getItemId() == R.id.ab_menu_VRecord) {
if(recording)
{
item.setIcon(R.drawable.recordstop);
}else{
item.setIcon(R.drawable.recordstart);
}
}
return true;
} else {
return super.onOptionsItemSelected(item);
}
}
任何人都知道如何在这种方法之外做到这一点。
答案 0 :(得分:5)
示例:
class {
public MenuItem example;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.actionbar, menu);
example = menu.findItem(R.id.ab_menu_exampleview);
return true;
}
}
然后在整个课程中你可以使用
example.setIcon("Your Image");
答案 1 :(得分:0)
不是100%确定您想要更改图标的位置,但您当然可以缓存或创建一个类成员变量,并将其指向Activity或Fragment中的MenuItem。在他们点击它或你给它充气后,将它分配给成员变量,当你需要更改它时,你有一个引用或“缓存”指针来改变它。
我认为这是一个UI更改,因此您可能必须确保只在UI线程上调用它。
答案 2 :(得分:0)
if(!item.isChecked()){
item.setChecked(true);
item.setIcon(R.drawable.icon1);
}else{
item.setChecked(false);
item.setIcon(R.drawable.icon2);
}
是这个吗?