我有一个上下文操作栏,我想在按下项目时更改图标。我有这个代码。
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item1:
mode.finish();
return true;
default:
return false;
}
}
在xml中
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_item1"
android:icon="@drawable/myNormalImage"
android:title="x"
android:showAsAction="always|withText" />
</menu>
当用户点击项目menu_item1时,我将设置另一个图像(按下的图像)。我该怎么办?
答案 0 :(得分:1)
假设您要将其从@drawable/myNormalImage
更改为@drawable/myAbnormalImage
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item1:
// change the icon first
item.setIcon(R.drawable.myAbnormalImage);
return true;
default:
return false;
}
}
答案 1 :(得分:0)
使用on onOptionsItemSelected方法
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.todaySched:
// put your code here to change the icon
return true;
default:
return super.onOptionsItemSelected(item);
}
}
答案 2 :(得分:0)
试试这个,
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item1:
item.setIcon(your_condition? R.drawable.your_img1 : R.drawable.your_img2);
return true;
default:
return false;
}
}
答案 3 :(得分:0)
你可以添加以下..希望这会对你有帮助
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item1:
getActionBar().setIcon(R.drawable.xyz);
return true;
default:
return false;
}
}