ListView 中点击Item中的Button删除当前行
时间: 2024-02-11 16:07:38 浏览: 129
ListView删除行
4星 · 用户满意度95%
好的,针对你的问题,我可以给出以下的解决方案:
1. 在你的Adapter中为每一个Item中的Button设置一个点击事件监听器。
2. 在点击事件监听器中,获取当前点击的Button所在的Item的位置position。
3. 调用Adapter中的removeItem(position)方法,将该Item从ListView中删除。
4. 在removeItem(position)方法中,移除数据源中该位置对应的数据,并调用notifyDataSetChanged()方法刷新ListView。
下面是一个参考代码:
```java
public class MyAdapter extends BaseAdapter {
private List<String> mDataList = new ArrayList<>();
private Context mContext;
public MyAdapter(Context context, List<String> dataList) {
mContext = context;
mDataList = dataList;
}
@Override
public int getCount() {
return mDataList.size();
}
@Override
public Object getItem(int position) {
return mDataList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.item_layout, parent, false);
}
Button deleteBtn = (Button) convertView.findViewById(R.id.delete_btn);
deleteBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
removeItem(position);
}
});
return convertView;
}
public void removeItem(int position) {
mDataList.remove(position);
notifyDataSetChanged();
}
}
```
在上面的代码中,我们为每一个Item中的Button设置了一个点击事件监听器。在监听器中调用removeItem(position)方法,将该Item从ListView中删除。在removeItem(position)方法中,我们移除了数据源中该位置对应的数据,并调用notifyDataSetChanged()方法刷新ListView。
阅读全文