这个问题可能已经回答了几次,但它并没有涵盖我在找什么。删除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