ListView的学习
listView是手机中重要的一种组件,它以垂直列表的形式显示所有的列表项。
如图所示:
是怎么实现的呢?
其中重要的是数据适配器:ArrayAdapter,SimapleAdapter
1,新建一个适配器
ArrayAdapter有三个参数:
1,上下文,
2,当前listView加载的每一个列表项所对应的布局文件
3,数据源
arr_adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,arr_datat);
SimapleAdapter有五个参数
1,上下文
2,数据源
一个Map所组成的List集合,每一个Map都会对应ListView列表中的一行
每一个Map(键值)中的键必须包含所在from中指定的键
3,自定义的布局文件的id,R.layout.item这里是我们自定义的一个布局文件
4,Map中的键名,String类型的
5,绑定数据视图中的id,与from成对应关系,,int类型的
simp_adapter = new SimpleAdapter(this,getData(),R.layout.item,new String[]{"pic","text","text2"},new int[]{R.id.pic,R.id.text,R.id.text2} );
数据源:
private List<Map<String,Object>> getData(){
for (int i = 0;i < 20; i++){
Map<String,Object> map = new HashMap<>();
map.put("pic",R.drawable.demo);
map.put("text","小明"+i);
map.put("text2","小明"+i+i);
dataList.add(map);
}
return dataList;
2,适配器加载数据
就是把数据源加载到适配器中
3,视图加载适配器listView.setAdapter
listView.setAdapter(arr_adapter);
listView.setAdapter(simp_adapter);
监听器
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String text = listView.getItemAtPosition(position)+"";
Toast.makeText(MainActivity.this,text,LENGTH_LONG).show();
}
});