MenuItem上的Android Show DropDown菜单单击

Fai*_*her 3 android android-actionbar drop-down-menu android-studio

我想在MenuItem上显示DropDown菜单,就像这样.

在此输入图像描述

像这样

在此输入图像描述

请注意,此项目添加如下:

<item
    android:id="@+id/menu_item_action_parameters"
    android:title="@string/text_parameters"
    android:icon="@drawable/ic_menu_parameter"
    app:showAsAction="ifRoom|withText"/>
</item>
Run Code Online (Sandbox Code Playgroud)

在我的代码中:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    switch (id) {
        case R.id.menu_item_action_parameters:
            // What to do here?
            break;
    }
    return super.onOptionsItemSelected(item);
 }
Run Code Online (Sandbox Code Playgroud)

我已经看到了这个链接,但我已经知道ActionBar.setListNavigationCallbacks()已被弃用.

谢谢!

Hoa*_*yen 20

创建菜单xml如下

 <menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
       android:id="@+id/menu_item_action_parameters"
       android:title="@string/text_parameters"
       android:icon="@drawable/ic_menu_parameter"
       app:showAsAction="ifRoom|withText"/> >
       <menu>
          <item 
            android:id="@+id/action_dropdown1"
            android:title="@string/dropdown_1" />
          <item 
            android:id="@+id/action_dropdown2"
            android:title="@string/dropdown2" />
          <item 
            android:id="@+id/action_dropdown3"
            android:title="@string/dropdown3" />
        </menu>
    </item>

    <item
      more item
    </item>
</menu>
Run Code Online (Sandbox Code Playgroud)

然后

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    switch (id) {
        case R.id.action_dropdown1:
            ...
            return true;

        case R.id.action_dropdown2:
            ...
            return true;
        ...

        default:
            return super.onOptionsItemSelected(item);
     }
 }
Run Code Online (Sandbox Code Playgroud)