OnCreateContextMenu et des éléments ListView
J'ai un LisView avec plusieurs articles. Pour cela, j'ai connecté un OnItemClickListener (intérieur de la classe), comme ceci:
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(ShoppingListApp02Activity.this, "List item selected:" +
items.get(position).getId(), Toast.LENGTH_LONG).show();
}
});
Comme il est évident, en sélectionnant un entriy affiche les éléments de l'objet de l'entrée, dans cet exemple, l'Élément sélectionné IDENTIFIANT d'objet (pas l'ID de la liste, mais les objets, l'ID du jeu lors de la création de la liste de tableaux éléments). Cela fonctionne très bien, et me permet de faire ce que je veux avec l'élément sélectionné(s).
Maintenant, j'aimerais aussi avoir un "long-cliquez sur" auditeur, ce qui ouvre un menu contextuel de l'élément de liste sélectionné. Comment dois-je faire? J'ai été en mesure de joindre un onCreateContextMenu auditeur à la liste, mais je ne vois pas comment je peux obtenir les éléments de la liste de tableaux comme le onItemClickListener?
Voici ce que j'ai obtenu:
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
menu.add(0, v.getId(), 0, "Something");
menu.add(0, v.getId(), 0, "Something else");
}
Depuis OnCreateConextMenu prend différents paramètres de la OnItemClickListener, comment puis-je accéder à la liste de tableaux éléments comme dans la OnItemClickListener?
Vous devez vous connecter pour publier un commentaire.
Si vous décidez que vous voulez toujours utiliser le menu contextuel de paradigme:
Pris en compte pour travailler avec des listes:
onContextItemSelected
-Gestionnaire?Au lieu de vous embêter avec des menus contextuels (qui sont utilisés dans un large contexte - comme un clic-droit sur PC),
ListView
offre onItemLongClick événement qui est beaucoup plus facile à mettre en œuvre. Par exemple:Cela vous aidera à atteindre à long enfoncé actions sur une ligne.
AlertDialog
avec unArrayAdapter
etDialogInterface.OnClickListener
à la pop-up de votre menu personnaliséOuvrez le menu contextuel de la vue dans le gestionnaire d'événement pour la longue conférence de presse sur la ligne de vue.
De cette façon, l', cliquez sur la vue et le long appuyez sur menu contextuel fonctionne sur la liste de la ligne de l'élément.
setOnItemLongClickListener
qui sera de retour la Vue fabriqués à partir de getView(). c'est à dire la ligne de l'élément deD'abord vous inscrire menu contextuel dans votre listview pour ouvrir le menu contextuel:
ensuite, vous pouvez utiliser votre onCreateContextMenu() méthode:
Vous avez réellement n'avez pas besoin d'utiliser longClickListener avec votre listview à utiliser ContextMenu.
Espère que ça va vous aider.
Je vais vous laisser aller dans l'écrit ci-dessous l'exemple et voir comment il est mis en œuvre par l'aide de onContextItemSelected()
Espère que cela aide...
Essayer ce pour voir un élément dans recycleView
Vous pouvez l'utiliser avec les données de réglage pour un ViewHolder élément