この質問はSOで数回回答された可能性がありますが、私が探しているものをカバーしていませんでした。
カスタムアダプタ付きのリストビューがあります。ImageView
リストビューには、テキストビューとその行に添付された削除があります。アイテムがクリックされたときにそのアイテムをデータベースからも削除するために、そのアイテムからテキストビューの値を抽出したいと思います。リストアイテムも更新したいのでlistview.setOnClickListener
、そのために使用しています。そのため、同じものを削除に使用することはできませんでした。setTag()
使用法と方法について読みましgetTag()
たが、正確にそれを行う方法がわかりません。アダプター内のimageviewを削除するためのタグとして、textviewまたはむしろtexviewの文字列値を設定したいと思います。次に、私のアクティビティgetTag()
の内部で使用します。delete.setOnClickListener
誰かがこれを手伝ってくれませんか?
関連するアダプターコード:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
MyStringReaderHolder holder;
if(row==null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent,false);
holder= new MyStringReaderHolder();
holder.workLogID = (TextView)row.findViewById(R.id.worklog_id);
holder.delete = (ImageView) row.findViewById(R.id.delete_entry);
row.setTag(holder);
}
else
{
holder=(MyStringReaderHolder) row.getTag();
}
ViewWorkEntryBean mrb = data.elementAt(position);
holder.workLogID.setText(mrb.workLogID);
// mrb.workLogID contains the desired string which I want to pass to delete as a tag
// How do I set the tag?
return row;
}
static class MyStringReaderHolder
{
String billable;
TextView workLogID;
ImageView delete;
}
そしてこれはアクティビティ内のonClickListenerです:
ImageView deleteButton = (ImageView) findViewById(R.id.delete_entry);
deleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String ID = null;
// how do I get the value of the tag into the string ID
}
});