Androidアプリを作成していますが、リストビューを構築中です。 各リストアイテムの削除ボタンを使用して各アイテムを削除します。つまり、特定の行の削除ボタンを押すと、同じ行のリスト項目を削除する必要があります。Androidの各削除ボタンをクリックするとイベントエラーが発生する
しかし、私はここでいくつかのバグを見つけました。ビューの削除ボタンを押すと、同じ行のアイテムではなく、ビューの最後のアイテムだけが削除されます。各削除ボタンのイベントアクションが最後のアイテムのIDだけに接続されている理由はわかりません。
ここは私のアダプタコードです。
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;
}
なぜ私のdeleteButton.setOnClickListenerがうまく動作しないのかわかりません。 ありがとうございます。
は、ここに私のアプリケーションのスクリーンショット enter image description here
ポストlogcatで
–
そしてplzは自己がどのようにlist_itemArrayList.remove(i)を使用する方法についての代わりに、リストビュー –
のrecycleview ..use URS更新してくださいこれらの行を置き換えるの内側に試してみてください、あなたのリスナーをクリックしますか? – Prexx