[英]How to change dynamically bottomAppBar menu icon
在我的應用程序中,我想使用com.google.android.material.bottomappbar.BottomAppBar
視圖。
我想在此視圖中顯示一些菜單項,為此,我編寫以下代碼: detailBottomAppBar.replaceMenu(R.menu.empty_menu);
,並使用此代碼可以在此視圖中顯示菜單項。
我想動態更改此菜單項之一的菜單圖標。 但我不知道該怎么做。
我可以使用以下代碼通過點擊監聽器更改圖標
detailBottomAppBar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.detailMenu_favorite:
Toast.makeText(getViewContext(), "Favorite", Toast.LENGTH_SHORT).show();
item.setIcon(ContextCompat.getDrawable(getViewContext(), R.drawable.ic_search_24dp));
break;
case R.id.detailMenu_comment:
Toast.makeText(getViewContext(), "Comment", Toast.LENGTH_SHORT).show();
break;
}
return true;
}
});
但是我不想 用click來改變這個項目, 我想在沒有click listener的情況下進行開放 activity
來改變圖標。
我該如何解決?
創建菜單時,可以保存Menu變量。 這樣,您可以獲取所需的特定項目並進行修改。
private Menu _menu;
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.main, menu);
_menu = menu;
}
訪問所需的菜單項
MenuItem item = _menu.findItem(R.id.menu_item_id);
item.setIcon(ContextCompat.getDrawable(getViewContext(), R.drawable.ic_search_24dp));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.