I have a menu resource file like this :
<menu xmlns:android="http://ift.tt/nIICcg"
>
<group android:checkableBehavior="single">
<item android:id="@+id/sort_all"
android:title="All"
android:orderInCategory="1" />
<item android:id="@+id/sort_co"
android:title="CoAuthors"
android:orderInCategory="2" />
<item
android:id="@+id/sort_title"
android:title="Title"
android:orderInCategory="3" />
<item
android:id="@+id/sort_journal"
android:title="Journals"
android:orderInCategory="4" />
<item
android:id="@+id/sort_year"
android:title="Year"
android:orderInCategory="5" />
</group>
</menu>
and I'm using it on a popup menu :
final PopupMenu popup = new PopupMenu(MainActivity.this, btn1);
//Inflating the Popup using xml file
popup.getMenuInflater().inflate(R.menu.search_menu, popup.getMenu());
//registering popup with OnMenuItemClickListener
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.sort_co:
popup.getMenu().findItem(item.getItemId()).setChecked(true);
return true;
case R.id.sort_title:
item.setChecked(true);
return true;
case R.id.sort_journal:
item.setChecked(true);
return true;
case R.id.sort_year:
item.setChecked(true);
return true;
case R.id.sort_all:
item.setChecked(true);
return true;
default:
return true;
}
}
});
popup.show();
}
});
as you can see i have tried using
item.setChecked(true) and
popup.getMenu().findItem(item.getItemId()).setChecked(true);
but the problem is when i click on items just before closing menu, item gets checked but when i reopen the menu again, it is not checked ! I've also tried using
MenuItem subMenuItem = item.getSubMenu().getItem(INDEX_OF_ITEM);
subMenuItem.setChecked(!subMenuItem.isChecked());
but it gives me NullPointerException... . any ideas ?
Aucun commentaire:
Enregistrer un commentaire