我创建了一个带有自定义适配器的ArrayList,以在每个项目旁边显示一个删除按钮。 如何通过单击相应的删除按钮来删除列表中的一个项目?
我读到我必须在getView()方法中添加以下代码:
btnDel.setTag(position);
接下来我应该将位置转换为int,因为setTag返回一个Object。我该如何管理?
然后,我应该在我的getView()中创建一个onClickListener()函数,如下所示:
btnDel.setOnClick....{
arrayList.remove(index);
adapter.notifyDataSetChanged();}
如何获取当前所选删除按钮的编号或我应该在remove()中添加什么?
我是android的新手,所以请提供代码示例或易于理解的提示:)
感谢。
答案 0 :(得分:1)
你应该把代码放在getView方法中并使位置最终......
btnDelete.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
arrayList.remove(position);
notifyDataSetChanged();
}
});
答案 1 :(得分:1)
您可以从适配器类中的getview方法编写代码,只需检查此代码即可。
public View getView(int position, View convertView, ViewGroup parent) {
anyListener.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
yourArrayList.remove(position);
notifyDataSetChanged();
}
});
return convertView;
}
答案 2 :(得分:0)
你需要创建类似于此的东西(至少这是我创建这个函数的方式):
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
ViewHolder holder;
if (convertView == null) {
vi = inflater.inflate(R.layout.item, null);
holder = new ViewHolder();
holder.name = (Button) vi.findViewById(R.id.delete);
vi.setTag(holder);
} else
holder = (ViewHolder) vi.getTag();
holder.name.setText("Delete");
holder.name.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
arrayList.remove(position);
adapter.notifyDataSetChanged();
}
});
return vi;
}
类似的东西对你有用。 希望能帮助到你! :)