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 数据从哪里来 key
new int[]{R.id.tv_1, R.id.tv_2}); //to 数据到哪里 条目里面的控件的id
lv.setAdapter(adapter);
条目点击事件 ListView 一般用 setOnItemClickListener() 这个方法属于 AdapterView
1.先得到适配器 getAdapter()
2.在得到所在位置的条目的数据 getItem()
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//获取条目对应的数据
//这个的适配器, SimpleAdapter List<Map<String, Object>> data
Map<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();
}
});