Pierre87 Posté(e) 21 avril 2010 Share Posté(e) 21 avril 2010 Salut ! J'ai essayé d'ajouter un Button dans une ligne de ListView. Malheureusement, ça empêche de cliquer la cellule (et je suis aussi bien embêté pour récupérer l'id de ma ligne quand on clique sur le bouton) Vous avez une idée pour arriver à avoir plusieurs zones cliquable sur une ligne ? Merci ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nivek Posté(e) 21 avril 2010 Share Posté(e) 21 avril 2010 L'id de la ligne dans le bouton, perso j'utilise monBouton.setTag(monId) pour mettre les infos qui me sont utiles (au moment de l'initalisation des composants de la vue dans getView()). Pour le pb de ne pas pouvoir "cliquer sur la cellule", je ne suis pas sûr de comprendre. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Pierre87 Posté(e) 21 avril 2010 Auteur Share Posté(e) 21 avril 2010 Dans la layout d'une view d'une ligne, ajoute un Button. Le OnItemClickListener de ta view ne fonctionnera plus :P En gros, je voudrais pouvoir cliquer sur la totalité de ma ligne, ou sur un bouton de ma ligne, et pouvoir facilement déterminer si le clic vient de ma ligne ou de mon bouton, et le numéro de la ligne J'ai vu que l'application Twidroid a déjà cette fonctionnalité. Dans la timeline, on peut soit cliquer sur l'image de la personne, ou sur le texte du tweet. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nivek Posté(e) 21 avril 2010 Share Posté(e) 21 avril 2010 Faudra que je regarde si je n'ai pas ça de mon côté également dans EmailAlbum, je te tiens au courant mais ca sera... plus tard ;-) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nanis Posté(e) 10 mai 2010 Share Posté(e) 10 mai 2010 bonjour je recherche à faire la même chose, as tu eu une solution à ton problème ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
FreakDev Posté(e) 12 mai 2010 Share Posté(e) 12 mai 2010 je dis ça comme ça, je n'ai pas testé, mais si tu met un écouteur sur l'événement click du TextView (je suppose que c'est un TextView qui contient le reste du contenu de la ligne) à coté du bouton... est ce que tu n'obtient pas l'effet attendu ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nanis Posté(e) 12 mai 2010 Share Posté(e) 12 mai 2010 (modifié) Après quelques recherches j'ai un code de ce style : Dans l'adapter de ma ListView : public class MailAdapter extends ArrayAdapter{ private TextView subject; private TextView receiver; private TextView sender; private TextView date; private TextView senderText; private TextView receiverText; private ImageView imgClassement; public MailAdapter(Context context, int textViewResourceId, List mails) { super(context, textViewResourceId,mails); } public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; //If view does not exist, we create it if (view == null){ LayoutInflater li = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = li.inflate(R.layout.headermail, null); } //Create list of mail MailHeader mail = getItem(position); subject = (TextView)view.findViewById(R.id.subject); receiver = (TextView)view.findViewById(R.id.receiver); sender = (TextView)view.findViewById(R.id.sender); date = (TextView)view.findViewById(R.id.date); senderText = (TextView)view.findViewById(R.id.senderText); receiverText = (TextView)view.findViewById(R.id.receiverText); imgClassement = (ImageView)view.findViewById(R.id.imgClassement);[color="#A52A2A"] //L'icone sur laquelle l'utilisateur peut cliquer pour afficher les détails du mail (par une fenêtre en surimpression)[/color] if (mail != null) { //Looking for classement lvl to display corresponding lights int drawable = retrieveClassement(mail.getClassementLvl(), mail.getReaded(), mail.getSenderEmail(), mail.isDraft()); imgClassement.setImageResource(drawable); imgClassement.setTag(mail); HeaderMailDisplayActivity hm = new HeaderMailDisplayActivity(); imgClassement.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { [color="#A52A2A"]// La j'aimerai pouvoir renvoyer à mon activity le mail pour lequel l'user à cliquer mais mais je ne vois pas comment faire le lien entre les 2 [/color] } }); //read or not read ? if (mail.getReaded() == BoozterMailConstants.BB_MAIL_TYPE_UNREAD) { headerStyle(mail, R.color.black, Typeface.BOLD); senderText.setTypeface(null, Typeface.BOLD); receiverText.setTypeface(null, Typeface.BOLD); // mail is draft ? }else if(mail.isDraft()){ headerStyle(mail, R.color.blue_button_bottom, Typeface.ITALIC); senderText.setTypeface(null, Typeface.ITALIC); receiverText.setTypeface(null, Typeface.ITALIC); // mail is read and not draft }else{ headerStyle(mail, R.color.black, Typeface.NORMAL); senderText.setTypeface(null, Typeface.NORMAL); receiverText.setTypeface(null, Typeface.NORMAL); } } //return view to the activity return view; } Voila donc mon soucis, le OnClick sur les boutons fonctionnent, l'écouteur de la liste en général fonctionne, mais je ne sais pas quoi mettre dans le OnClick pour renvoyer à mon activity l'id du mail pour qu'elle affiche les details du mail en surimpression Modifié 12 mai 2010 par Nanis Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nivek Posté(e) 12 mai 2010 Share Posté(e) 12 mai 2010 Tu as placé une référence à ton objet mail dans le setTag() du imgClassement sur lequel tu as positionné ton OnClickListener. Donc dans le onClick() tu peux récupérer cette référence en faisant un v.getTag() et la transmettre à une méthode de ton Activity. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Pierre87 Posté(e) 16 mai 2010 Auteur Share Posté(e) 16 mai 2010 En fait, c'est assez bizarre - Une ligne simple : je peux cliquer - Une ligne avec un Button : je ne peux plus cliquer la ligne - Une ligne avec une ImageView sur laquelle j'ai rajouté un onClickListener : je peux cliquer la ligne Donc en gros : je n'utilise pas Button dans une ListView, mais je suis intéressé par une explication sur ce phénomène assez bizarre :P Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nanis Posté(e) 17 mai 2010 Share Posté(e) 17 mai 2010 Tu as placé une référence à ton objet mail dans le setTag() du imgClassement sur lequel tu as positionné ton OnClickListener.Donc dans le onClick() tu peux récupérer cette référence en faisant un v.getTag() et la transmettre à une méthode de ton Activity. Merci Nivek Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.