落日餘暉,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);
		}
	}
相關文章
相關標籤/搜索