簡體   English   中英

帶有 NoActionBar 的 MaterialSearchBar 中的選項菜單 - 不顯示溢出菜單項的圖標並且通過單擊項目沒有任何操作?

[英]Options Menu in MaterialSearchBar with NoActionBar - not showing the icons of overflow menu items and no action by clicking on item?

我希望有人可以幫助我解決這個問題。 我有一個帶有 MaterialSearchBar 和 NoActionBar 的 Activity,我想實現一個帶有項目的選項菜單。 這些項目應該有他們的圖標。 到目前為止,我寫了menu_main.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">
            <item
                android:id="@+id/action_anleitung"
                android:title="Anleitung"
                android:icon="@drawable/ic_manual"
                android:orderInCategory="100"
                app:showAsAction="never"/>
            <item
                android:id="@+id/action_fb"
                android:title="Feedback"
                android:icon="@drawable/ic_email"
                android:orderInCategory="100"
                app:showAsAction="never" />
</menu>

並將其添加到 Main.Activity:

  1. 在我的 OnCreate-Method 之后,我添加了以下代碼: materialSearchBar.inflateMenu(R.menu.menu_main); 2.增加了以下兩種方法:

     @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_anleitung: Toast.makeText(this, "Anleitung selected", Toast.LENGTH_SHORT).show(); return true; case R.id.action_fb: Toast.makeText(this, "Feedback selected", Toast.LENGTH_SHORT).show(); return true; default: return super.onOptionsItemSelected(item); } }

我的問題是現在顯示選項菜單並通過單擊顯示溢出項目但是:

  1. 項目文字“Anleitung”和“Feedback”附近沒有圖標。 我已經添加了icons-drawables,所以這不是問題。

  2. 通過單擊項目,沒有帶有文本“Anleitung selected”或“Feedback selected”的 Toast。

我是否遺漏了方法或代碼中的某些內容? 還是 MaterialSearchBar 的問題,它有另一種選項菜單方法。 幾天以來我一直在嘗試解決這個問題,但沒有找到任何解決方案感謝您的幫助!

您不需要編寫 onCreateOptionsMenu 或 onOptionsItemSelected 方法。

materialSearchBar.getMenu().setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            switch (item.getItemId()){
                case R.id.action_anleitung:
                    //Your Action
                    break;
                case R.id.action_fb:
                    //Your Action
                    break;
                default:
                    return true;
            }
        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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