在我的 ActionBar 上有一个项目有一个关于星星的图标(没有填充)。 当用户点击它时,图标变为另一个图标(实心星)。 但问题是,如果用户再次点击,图标不会再改变一次。
这就是我想要的
icon1->click->icon2->click->icon1->click->icon2
我的项目 xml:
<item
android:id="@+id/bookmark"
android:icon="@drawable/bookmark"
android:showAsAction="ifRoom"
android:title="Add to Favorites"/>
我的 actionBar Java:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
menu.clear();
inflater.inflate(R.menu.activity_desc, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.bookmark){
// i tried this: something like: if(item.getIcon() == (R.drawable.nobookmark){} it doesn't work
item.setIcon(R.drawable.nobookmark);
return true;
}
return true;
}
最佳答案
在您的 item.xml
中使其可检查:
<item
android:id="@+id/bookmark"
android:icon="@drawable/nobookmark"
android:checkable="true"
android:showAsAction="ifRoom"
android:title="Add to Favorites"/>
在 java 中,您必须手动切换选中状态并选择图标:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.bookmark){
item.setChecked(!item.isChecked());
item.setIcon(item.isChecked() ? R.drawable.bookmark : R.drawable.nobookmark);
return true;
}
return false;
}
关于java - Android ActionBar - 项目图标不断变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23887667/