如何在Android弹出菜单中设置默认选择的选项?

Art*_*ans 6 android android-layout

我正在使用以下代码来创建菜单:

    PopupMenu popup = new PopupMenu(getApplicationContext(), v);
    MenuInflater inflater = popup.getMenuInflater();
    inflater.inflate(R.menu.equalizer, popup.getMenu());
    popup.show();
Run Code Online (Sandbox Code Playgroud)

equalizer.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item android:id="@+id/flat"
              android:title="Flat" />
        <item android:id="@+id/stadium"
              android:title="Stadium" />
        <item android:id="@+id/jazz"
              android:title="Jazz" />
         <item android:id="@+id/rock"
              android:title="Rock" />
         <item android:id="@+id/pop"
              android:title="Pop" />
    </group>
</menu>
Run Code Online (Sandbox Code Playgroud)

如何设置,比方说,默认选择菜单的第3个选项?


编辑: 我想以编程方式更改默认值.

ekh*_*olm 17

已经给出了在xml中设置检查项的答案.如果您想在代码中执行此操作,请使用:

popup.getMenu().getItem(2).setChecked(true);
Run Code Online (Sandbox Code Playgroud)

选择第3项.之后,你当然膨胀的菜单...

  • 如果您还以编程方式添加菜单项,则需要在使用`setChecked()`之前设置`popup.getMenu().setGroupCheckable(0,true,true)`. (2认同)

Ale*_* C. 5

<item android:id="@+id/jazz"
  android:title="Jazz"
  android:checked="true" />
Run Code Online (Sandbox Code Playgroud)