生成listview中长按删除item的代码
时间: 2024-05-12 11:14:40 浏览: 109
以下是在Android中生成ListView中长按删除item的代码示例:
首先,在XML布局文件中定义ListView:
```
<ListView
android:id="@+id/my_listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
```
然后,在Java代码中,为ListView设置长按监听器,并创建自定义的Adapter类:
```
// 获取ListView
ListView listView = findViewById(R.id.my_listview);
// 创建Adapter并设置给ListView
MyAdapter adapter = new MyAdapter(this, dataList);
listView.setAdapter(adapter);
// 给ListView设置长按监听器
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
// 弹出删除确认对话框
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setMessage("确定要删除该项吗?");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 删除数据源中对应的数据项
dataList.remove(position);
// 更新ListView
adapter.notifyDataSetChanged();
}
});
builder.setNegativeButton("取消", null);
builder.show();
return true;
}
});
// 自定义Adapter类
class MyAdapter extends BaseAdapter {
private Context mContext;
private List<String> mDataList;
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(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.list_item, parent, false);
holder = new ViewHolder();
holder.textView = convertView.findViewById(R.id.item_textview);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
String item = mDataList.get(position);
holder.textView.setText(item);
return convertView;
}
class ViewHolder {
TextView textView;
}
}
```
在上面的代码中,我们首先为ListView设置了长按监听器,在监听器中弹出一个确认对话框,如果用户点击确定,则从数据源中删除对应的数据项,并调用adapter.notifyDataSetChanged()方法来更新ListView。
自定义Adapter类中,我们实现了getView()方法来设置ListView中每个item的样式。ViewHolder类用于缓存item中的TextView,以提高ListView的性能。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)