Je fais une application Android, mais je suis bloqué sur la construction de la liste. Je souhaite supprimer chaque élément en utilisant le bouton Supprimer de chaque élément de la liste. Ce que je veux dire que si j'appuie sur un bouton de suppression dans une ligne spécifique, un élément de la liste sur la même ligne doit être supprimé.Erreur d'événement lorsque vous cliquez sur chaque bouton de suppression dans Android ListView
Cependant, j'ai quelques bugs ici. Lorsque j'appuie sur les boutons de suppression de la vue, seul le dernier élément de la vue est supprimé, pas l'élément sur la même ligne. Je ne sais pas pourquoi l'action d'événement de chaque bouton de suppression est connectée à l'ID du dernier élément uniquement.
Voici mon code adaptateur.
public View getView(int i, View convertView, ViewGroup parent){
if(convertView == null){
convertView = LayoutInflater.from(context).inflate(R.layout.item,null);
viewHolder = new ViewHolder();
viewHolder.nickname_textView = (TextView)convertView.findViewById(R.id.nickname);
viewHolder.content_textView = (TextView)convertView.findViewById(R.id.post_content);
viewHolder.date_textView = (TextView)convertView.findViewById(R.id.date);
viewHolder.company_textView = (TextView)convertView.findViewById(R.id.company);
viewHolder.location_textView = (TextView)convertView.findViewById(R.id.location);
viewHolder.profile_imageView = (ImageView)convertView.findViewById(R.id.imageView);
viewHolder.deleteButton = (Button)convertView.findViewById(R.id.deleteButton);
viewHolder.idHolder_textView = (TextView)convertView.findViewById(R.id.idView);
convertView.setTag(viewHolder);
}
else{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.nickname_textView.setText(list_itemArrayList.get(i).getNickname());
viewHolder.content_textView.setText(list_itemArrayList.get(i).getContent());
viewHolder.date_textView.setText(list_itemArrayList.get(i).getWrite_date().toString());
viewHolder.location_textView.setText(list_itemArrayList.get(i).getLocation());
viewHolder.company_textView.setText(list_itemArrayList.get(i).getCompany());
viewHolder.profile_imageView.setImageResource(list_itemArrayList.get(i).getProfile_image());
viewHolder.idHolder_textView.setText(""+list_itemArrayList.get(i).getId());
viewHolder.idHolder_textView.setVisibility(View.INVISIBLE);
viewHolder.deleteButton.setId(list_itemArrayList.get(i).getId());
viewHolder.deleteButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
String sID = viewHolder.idHolder_textView.getText().toString();
long id = Long.parseLong(sID);
UserPosts deletePost = new UserPosts(context);
deletePost.open();
deletePost.deleteItem(id);
deletePost.close();
}
});
return convertView;
}
Je ne sais pas pourquoi mon deleteButton.setOnClickListener ne fonctionne pas bien. Merci.
Voici ma capture d'écran d'application enter image description here
logcat post s'il vous plaît –
Et plz mettre à jour l'auto ..use urs recycleview au lieu de listview –
Comment l'utilisation list_itemArrayList.remove (i) au lieu de l'intérieur de votre UserPosts cliquez sur l'écouteur? – Prexx