Я создал пункт меню в новом XML-файле:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="40dp"
android:layout_height="40dp">
<item
android:id="@+id/menu_item"
android:icon="@drawable/circle_ok"
app:showAsAction="always"
android:title=""/>
</menu>
, а затем добавил этот код к активности:
private MenuItem menuItem;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_item, menu);
menuItem = menu.findItem(R.id.menu_item);
return true;
}
чтобы изменить значок, который я использовал:
public boolean onPrepareOptionsMenu(Menu menu) {
switch(status) {
case 0:
menu.findItem(R.id.menu_item).setIcon(R.drawable.circle_ok);
break;
case 1:
menu.findItem(R.id.menu_item).setIcon(R.drawable.circle_warning);
break;
case 2:
menu.findItem(R.id.menu_item).setIcon(R.drawable.circle_alarm);
break;
}
return super.onPrepareOptionsMenu(menu);
}
после изменения значения статуса invalidateOptionsMenu (); должен быть назван.
Это результат:
цвет меняется каждую секунду
Спасибо всем за помощь, надеюсь, кто-нибудь найдет это полезным!