[英]Make menu on ActionBar stay open when I click on an item
我具有針對食譜的搜索功能,並且希望包含針對不同過敏或飲食的搜索過濾器。 我已經將此作為選項包含在頁面的操作欄中。 但是,每當我單擊復選框時,菜單都會消失,並且我必須再次單擊橙色圖標以彈出菜單,然后單擊另一個選項。 有沒有一種方法可以使菜單保持打開狀態,以便我可以在不每次關閉菜單的情況下檢查多個過濾器?
這是我的過濾器部分的圖片。
checkable_test.xml
<item android:id="@+id/action"
android:title="@string/action_example"
android:icon="@drawable/filter"
app:showAsAction="withText|ifRoom">
<menu>
<item android:title="Allergies">
<menu>
<group android:id="@+id/allergies"
android:checkableBehavior="all">
<item android:id="@+id/no_peanut"
android:icon="@drawable/no_peanut"
android:title="No Peanuts"
android:checkable="true"/>
<item android:id="@+id/no_sesame"
android:icon="@drawable/no_sesame"
android:title="No Sesame"
android:checkable="true"/>
<item android:id="@+id/no_dairy"
android:title="No Dairy"
android:icon="@drawable/no_milk"
android:checkable="true"/>
<item android:id="@+id/gluten_free"
android:icon="@drawable/gluten_free"
android:title="No Gluten"
android:checkable="true"/>
<item android:id="@+id/no_egg"
android:icon="@drawable/no_eggs"
android:title="No Egg"
android:checkable="true"/>
<item android:id="@+id/no_soy"
android:icon="@drawable/no_soy"
android:title="No Soy"
android:checkable="true"/>
<item android:id="@+id/no_seafood"
android:icon="@drawable/no_crust"
android:title="No Seafood"
android:checkable="true"/>
</group>
</menu>
</item>
Search.java
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.clear();
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.checkable_test, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.no_peanut:
if (item.isChecked()) item.setChecked(false);
else item.setChecked(true);
return true;
case R.id.no_dairy:
if (item.isChecked()) item.setChecked(false);
else item.setChecked(true);
return true;
case R.id.no_egg:
if (item.isChecked()) item.setChecked(false);
else item.setChecked(true);
return true;
case R.id.no_seafood:
if (item.isChecked()) item.setChecked(false);
else item.setChecked(true);
return true;
case R.id.no_sesame:
if (item.isChecked()) item.setChecked(false);
else item.setChecked(true);
return true;
case R.id.no_soy:
if (item.isChecked()) item.setChecked(false);
else item.setChecked(true);
return true;
case R.id.gluten_free:
if (item.isChecked()) item.setChecked(false);
else item.setChecked(true);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
有什么解決辦法嗎?
您可以嘗試更改所有
return true;
進入
return false;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.