一般配置
ListView
的数据源,ListView
在新版本已经被RecycleView
代替。
如果列表中存在checkBox的话,可以使用Map存储状态防止错位。
列表数据更新,在适配器中自己定义增删改查方法。
class MyListViewAdapter extends BaseAdater {
// 必须要实现的方法
// int getCount();
// Object getItem(int position);
// long getItemId(int position);
// View getView(int position, View convertView, ViewGroup parent);
// int getItemViewType(int position); // 使用列表多布局时会用到的方法,根据返回值类型的不同加载不同的布局文件
private Context mContext;
private List<String> mData;
public MyListViewAdapter(Context context, List<String> data) {
this.mContext = context;
this.mData = data;
}
@Override
public int getCount() { // 返回给列表数组的数量
return 0;
}
@Override
public Object getItem(int position) { // 返回 position 位置的对象
if (data != null)
return this.mData.get(position);
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
// 获取列表每个元素的 View 对象
// 需要定义一个 容器类 存储对象
Holder holder;
if (view == null) {
// 创建一个新的view
view = LayoutInflater.from(mContext)
.inflate(R.layout.xxx, parent, false);
holder = new Holder((TextView) view.findViewById(R.id.xxx));
view.setTag(holder);
} else {
holder = (Holder) view.getTag();
}
holder.tv.setText("text");
return view;
}
static public class Holder() { // 加静态方法,类只调用一次
TextView tv;
public Holder(TextView tv) {
this.tv = tv;
}
}
}