[英]How to change icons in ActionBar dynamically
I want to change the icon on the ActionBar dynamically,I have a exit menu.But It doesn't change my android phone in the 5 version 我想动态更改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);
}
}
This is my exit menu xml. 这是我的退出菜单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>
Edit2: in onCreateOptionsMenu (Menu menu) Edit2:在onCreateOptionsMenu(菜单菜单)中
MenuItem menuItem=menu.findItem(R.id.exit_menu);
MenuItemCompat.getActionView(menuItem);
menuItem.setIcon(R.drawable.new_icon);
xml: 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>
在onCreateOptionsMenu方法中使用
menu.getItem(0).setIcon(drawable);
@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);
}
do not handle in onOptionsItemSelected() method. 不要在onOptionsItemSelected()方法中处理。
If you use a Toolbar instead of the ActionBar you can customize it a lot more. 如果您使用工具栏而不是操作栏,则可以对其进行更多自定义。 For example you can use a custom xml layout file for your Toolbar, making it look just how you want it to. 例如,您可以为工具栏使用自定义xml布局文件,使其看起来像您想要的样子。
Hello I just added one line to change icon in option menu. 您好,我只添加了一行以更改选项菜单中的图标。 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);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.