adapter有setData方法用于接受传递的数据示例
时间: 2024-11-12 18:35:19 浏览: 33
在Android中,如果你有一个自定义的Adapter,比如`BaseAdapter`、`ArrayAdapter`或者`RecyclerView.Adapter`的子类,你可能会创建一个专门的方法来处理外部数据源的变化。例如,假设我们有一个简单的`YourListAdapter`类,它接受一个`ArrayList<String>`作为数据:
```java
public class YourListAdapter extends RecyclerView.Adapter<YourListAdapter.ViewHolder> {
private List<String> dataList;
private OnDataChangedListener mListener;
public interface OnDataChangedListener {
void onDataChanged();
}
public class ViewHolder extends RecyclerView.ViewHolder {
//... 定义ViewHolder构造器和视图相关的成员变量和设置布局
}
public YourListAdapter(List<String> dataList) {
this.dataList = dataList;
}
// 添加一个 setData 方法来更新数据
public void setData(List<String> newData) {
this.dataList.clear(); // 清除旧的数据
this.dataList.addAll(newData); // 添加新的数据
notifyDataSetChanged(); // 触发视图的更新
if (mListener != null) {
mListener.onDataChanged(); // 如果有监听者,通知数据已改变
}
}
// ...其他必要的Adapter方法
// 当外部数据发生变化时,需要调用这个方法来更新Adapter
public void setOnDataChangedListener(OnDataChangedListener listener) {
mListener = listener;
}
}
```
在这个例子中,`setData`方法不仅更新了内部的数据列表,还触发了`notifyDataSetChanged()`以刷新RecyclerView。如果有`OnDataChangedListener`订阅,还会通知数据已经改变。
阅读全文