gpt4 book ai didi

java - Android ActionBar - 项目图标不断变化?

转载 作者:数据小太阳 更新时间:2023-10-29 02:53:28 27 4
gpt4 key购买 nike

在我的 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com