落日余晖,listview快速编写

自从recycleview问世,listview走上了被抛弃的道路,这个慢慢过期的控件,就真的一无可取了吗?java

recycleview的优势就是灵活性很好,缺点也有,就是灵活性太好了,不少东西须要本身动手去写,例如添加头部,添加item的点击事件,回头想一想,在listview中,这些功夫都省去了,若是需求不是特别复杂的话,listview仍是颇有用武之地的。android

listview调用三部曲ide

一、在xml布局文件中添加listview控件,建立item布局文件布局

<ListView
  android:id="@+id/listview"
  android:layout_width="match_parent"
  android:layout_height="wrap_content" />

二、建立adapter测试

public class MyAdapter extends BaseAdapter {
	private List<Map<String, String>> data;
	private Context context;

	public MyAdapter(List<Map<String, String>> data, Context context) {
		this.data = data;
		this.context = context;

	}

	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return data.size();
	}

	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return data.get(position);
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		ViewHolder holder = null;
		if (convertView == null) {
			holder = new ViewHolder();
			convertView = View.inflate(context, R.layout.item, null);//item布局文件
			convertView.setTag(holder);

		} else {
			holder = (ViewHolder) convertView.getTag();
           
		}

 //在这里初始化数据和绑定相关事件
		return convertView;
	}

	private class ViewHolder {

	}
}

三、绑定listview控件,并初始化this

//初始化数据
private List<Map<String, String>> datalist;

private void initData() {
	datalist = new ArrayList<Map<String, String>>();
	for (int i = 0; i < 20; i++) {
		datalist.add(new HashMap<String, String>());
	}
}

//初始化listview控件
private ListView listview;
private Context mContext;
private MyAdapter adapter;

listview = (ListView) findViewById(R.id.listview);
adapter = new MytAdapter(datalist, mContext);
listview.setAdapter(adapter);

这里插入的数据被放到list里面,经过map键值对来输入具体数据,相对灵活,若是每次输入的数据都是固定的几组,能够建立一个bean来替代map,例如code

private void initData() {

		datalist = new ArrayList<Listbean>();
		for (int i = 0; i < 15; i++) {
			Listbean bean = new Listbean();
			bean.setTitle("测试数据--" + i);
			bean.setType(i % 3);
			datalist.add(bean);
		}
	}
相关文章
相关标签/搜索