簡體   English   中英

如何動態更改bottomAppBar菜單圖標

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM