对于这样一个简单的问题,这似乎是一个疯狂的挑战!
3失败的解决方案:
通常情况下,我会使用Bundle来解决这个问题。然而, Bundle只接受原语和parcelables。我怎么能包裹一个 MenuItem(如果有的话)?
另一种方法是在新活动中获取MenuItem 并使用上面提到的布尔值来决定图标值。 但是,如果没有它,似乎无法获取MenuItem 首先被按下(即this.getMenu())。
另一种选择是模拟按MenuItem 取决于布尔值。但是,似乎没有办法 模拟按MenuItem(主要是因为没有办法 抓住一个MenuItem!)。
当方向发生变化时,如何在新活动的操作栏上更改MenuItem的徽标?
答案 0 :(得分:1)
1,保存Activity onSaveInstanceState
时的布尔值状态2,恢复活动重新创建时的布尔值。
3,在菜单创建时更改图标。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
MenuItem item = menu.getItem(0);
if(mIsTrue){
item.setIcon(R.drawable.true_icon);
}else{
item.setIcon(R.drawable.false_icon);
}
return true;
}