這個問題可能已經回答了幾次,但它並沒有涵蓋我在找什麼。刪除ListView元素刪除按鈕
我有一個自定義適配器的列表視圖。該列表視圖有一個textview和一個刪除ImageView
附加到它的行。我想從項目中提取textview的值,以便從數據庫中刪除該項目。我也想更新列表項目,我正在使用listview.setOnClickListener
。所以我不能使用相同的刪除。我已閱讀使用setTag()
和getTag()
方法,但不知道如何做到這一點。我想將texview的textview或字符串值設置爲適配器內部的delete imageview的標記。然後在我的活動中使用delete.setOnClickListener
內的getTag()
。任何人都可以請幫我解決這個問題嗎?
相關適配器代碼:
@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
}
});
試試'v.getTag();'你的'onClick'裏面' – Praveenkumar 2012-08-02 13:50:17
@SpK我必須設置一個標籤才能使用'getTag'嗎? – Harsh 2012-08-02 13:52:57
是的。如果您在customAdapter類中爲「ImageView」設置了任何標籤。 – Praveenkumar 2012-08-02 13:54:41