我想动态更改ActionBar上的图标,我有一个退出菜单。但它不会在5版本中更改我的Android手机
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.exit_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.exit_menu:
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
这是我的退出菜单xml。
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/exit_menu"
android:icon="@drawable/exit"
android:title="Exit"
/>
</menu>
答案 0 :(得分:1)
EDIT2: 在onCreateOptionsMenu(菜单菜单)
MenuItem menuItem=menu.findItem(R.id.exit_menu);
MenuItemCompat.getActionView(menuItem);
menuItem.setIcon(R.drawable.new_icon);
的xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/exit_menu"
android:title="@string/menu_string"
android:icon="@drawable/exit"
app:showAsAction="always"/>
</menu>
答案 1 :(得分:0)
在onCreateOptionsMenu方法中使用
menu.getItem(0).setIcon(drawable);
答案 2 :(得分:0)
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
settingsItem = menu.findItem(R.id.exit_menu);
if (SOME CONDITION) {
settingsItem.setIcon(getDrawable(R.drawable.ic_add_image));
} else {
settingsItem.setIcon(getDrawable(R.drawable.ic_add_image1));
}
settingsItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
//ONCLICK METHOD
return false;
}
});
return super.onPrepareOptionsMenu(menu);
}
不要处理onOptionsItemSelected()方法。
答案 3 :(得分:0)
如果您使用工具栏而不是ActionBar,则可以对其进行更多自定义。例如,您可以为工具栏使用自定义xml布局文件,使其看起来就像您希望的那样。
答案 4 :(得分:0)
您好我刚刚在选项菜单中添加了一行来更改图标。 item.setIcon(getResources().getDrawable(R.drawable.ic_launcher));
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.exit_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.exit_menu:
android.os.Process.killProcess(android.os.Process.myPid());
//Add This line in your code
item.setIcon(getResources().getDrawable(R.drawable.ic_launcher));
System.exit(1);
return true;
default:
return super.onOptionsItemSelected(item);
}
}