在此基础上,实现ListView的内容增加和长按删除
时间: 2024-02-03 21:13:00 浏览: 17
好的,我们可以用一个List来存储ListView中的内容,然后通过Adapter将其展示出来。
首先,我们需要在布局文件中添加一个ListView:
```xml
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp" />
```
然后,我们可以通过一个List来存储ListView中的内容:
```java
List<String> dataList = new ArrayList<>();
```
接下来,我们要创建一个自定义的Adapter来展示ListView中的内容,并且实现内容的增加和长按删除功能。这里我们可以继承BaseAdapter类来创建自定义的Adapter:
```java
public class MyAdapter extends BaseAdapter {
private List<String> mDataList;
public MyAdapter(List<String> dataList) {
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) {
ViewHolder viewHolder = null;
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_listview, parent, false);
viewHolder = new ViewHolder();
viewHolder.textView = convertView.findViewById(R.id.tv_item);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.textView.setText(mDataList.get(position));
// 设置长按删除功能
convertView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
mDataList.remove(position);
notifyDataSetChanged();
return true;
}
});
return convertView;
}
static class ViewHolder {
TextView textView;
}
}
```
上面的代码中,我们通过继承BaseAdapter类来创建自定义的Adapter,重写了其中的几个方法。在getView方法中,我们将数据绑定到布局文件中的控件,并且设置了长按删除功能。
接下来,我们可以在Activity中使用自定义的Adapter来展示ListView中的内容,并且实现内容的增加和长按删除功能:
```java
public class MainActivity extends AppCompatActivity {
private ListView mListView;
private List<String> mDataList = new ArrayList<>();
private MyAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListView = findViewById(R.id.listView);
mAdapter = new MyAdapter(mDataList);
mListView.setAdapter(mAdapter);
// 点击按钮增加内容
findViewById(R.id.btn_add).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDataList.add("Item " + (mDataList.size() + 1));
mAdapter.notifyDataSetChanged();
}
});
}
}
```
上面的代码中,我们通过findViewById方法获取到ListView控件,并且创建了自定义的Adapter。然后,我们通过点击按钮来增加ListView中的内容,并且在Adapter中实现了长按删除功能。
最后,我们需要创建一个布局文件来展示ListView中每一项的样式,这里我们可以创建一个名为item_listview的布局文件:
```xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tv_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:textSize="18sp" />
```
这样,我们就完成了ListView的内容增加和长按删除功能的实现。