Reputation: 113
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
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.
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/exit_menu"
android:icon="@drawable/exit"
android:title="Exit"
/>
</menu>
Upvotes: 0
Views: 2114
Reputation: 370
Edit2: in onCreateOptionsMenu (Menu menu)
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>
Upvotes: 1
Reputation: 591
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);
}
}
Upvotes: 0
Reputation: 290
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.
Upvotes: 0
Reputation: 2085
@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.
Upvotes: 0