1.ArrayAdapter 数组适配器 用于简单的文字列表
2.SimpleAdapter 简单适配器 用户条目只有两个控件的列表
3.条目点击事件
ListView 一般用 setOnItemClickListener() 这个方法属于 AdapterView
1.先得到适配器 getAdapter()
2.在得到所在位置的条目的数据 getItem()
ArrayAdapter
这样的效果就是可以ArrayAdapter比较简单
ListView lv = findViewById(R.id.lv);String[] objects = new String[]{"小红", "小李", "小芳", "小红", "小李", "小芳", "小李", "小芳", "小红", "小李", "小芳"};ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.item_adapter, R.id.tv_jy, objects);lv.setAdapter(adapter);
SimpleAdapter
这样的效果就可以使用SimpleAdapter 比较简单
public void SimpleAdapter() {//模拟数据List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();for (int i = 0; i < 20; i++) {Map<String, Object> map = new HashMap<>();map.put("name", "图图" + i);map.put("phone", "123221" + i);data.add(map);}SimpleAdapter adapter = new SimpleAdapter(this, //context 上下文data, //data 数据R.layout.item_adapter, //resource 条目的布局new String[]{"name", "phone"}, //from 数据从哪里来 keynew int[]{R.id.tv_1, R.id.tv_2}); //to 数据到哪里 条目里面的控件的idlv.setAdapter(adapter);
条目点击事件 ListView 一般用 setOnItemClickListener() 这个方法属于 AdapterView
1.先得到适配器 getAdapter()
2.在得到所在位置的条目的数据 getItem()
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {//获取条目对应的数据//这个的适配器, SimpleAdapter List<Map<String, Object>> dataMap<String,Object> map = ( Map<String,Object>)lv.getAdapter().getItem(position);String name =(String) map.get("name");Toast.makeText(MainActivity.this,name,Toast.LENGTH_SHORT).show();}});