Barre d'action Android vérifiable élément de menu ne fonctionne pas / afficher correctement?
donc j'essaie d'obtenir mon point de menu, qui est afficher sur la barre d'action pour se comporter comme un tel menu option de menu. La première partie fonctionne en ce sens qu'elle est vérifiable et quand je le presse, et sont définis dans le code de la setChecked(true), il fonctionne. Mais ce qui ne fonctionne pas est la partie visuelle. Il n'y a pas de changement dans la façon dont un élément de menu a l'air sur la barre d'action dans activée et désactivée unis? J'ai essayé d'utiliser invalidateOptionsMenu() mais ce n'est pas faire le travail, et non seulement cela, avec cette ligne dans mon code je ne peux pas sortir de l'état coché?!?
Ce qui se passe est invalide OptionsMenu() coutures pour désactiver l'état coché et j'arrive à la fin en boucle, ou sur chaque pression de cette option de menu je continue de la décoché la partie du code où il est vérifié et à invalider il obtient désactivée, je suppose...
Voici le code de mon fichier XML pour le menu:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/lenslist_menu_add"
android:showAsAction="always"
android:title="@string/add"/>
<item android:id="@+id/lenslist_menu_delete"
android:showAsAction="always"
android:checkable="true"
android:title="@string/delete"/>
</menu>
Et voici le code java:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.lenslist_menu_add:
return true;
case R.id.lenslist_menu_delete:
if (item.isChecked() == true) {
item.setChecked(false);
deleteMode = false;
lensAdapter.setDeleteMode(false);
} else {
item.setChecked(true);
deleteMode = true;
lensAdapter.setDeleteMode(true);
}
lensAdapter.notifyDataSetChanged();
return true;
}
return super.onOptionsItemSelected(item);
}
Merci!
source d'informationauteur Dusko
Vous devez vous connecter pour publier un commentaire.
Vous de les utiliser comme éléments du menu principal, donc il ne fonctionnera pas.
SOURCE: Télécharger l'API DÉMOS, et ouvrez le fichier ApiDemos/res/menu/checkable.xml vous allez voir comme un commentaire sur la ligne 13. Je ne sais pas pourquoi ils ne parlent pas de cela dans la Documentation du Développeur
de référence avec un commentaire.:
http://alvinalexander.com/java/jwarehouse/android-examples/platforms/android-2/samples/ApiDemos/res/menu/checkable.xml.shtml
Ou tout simplement le faire vous-même
et dans onOptionsItemSelected faire:
La meilleure solution est de définir la
actionLayout
de la<Item>
à unCheckBox
. Cette solution vous donne un natif de la recherche checkbox (case à cocher, avec des matériaux, des animations, etc), avec une police qui correspond à d'autres éléments, et il fonctionne à la fois comme une action et dans le sous-menu.action_checkbox.html
:<Item>
comme ça. Notez que vous avez besoin de laCheckable
etChecked
encore dans le cas où il est montré dans un sous-menu (dans ce cas, leactionLayout
est ignoré.RetainedFragment
.