Android ListView使用

  使用方法:继承ListActivity或者findViewById得到ListView,setAdapter加载列表数据项,adapter.notifyDataSetChanged()更新列表项数据,listView.setOnItemLongClickListener(l)设置长按监听器,listView.setOnItemClickListener(l)设置点击选择监听器, setOnItemSelectedListener(l)设置选中监听器;

  更新:l.getItemAtPosition(position)得到该项数据,修改后,adapter.notifyDataSetChanged()更新列表项;

  列表项从简单到复杂:

  1. ArrayAdapter简单文字选项:setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new String[]{"item1", "item2"}));

  每个列表项通过android.R.layout.simple_list_item_1指定只有一个文字控件TextView;

  2. SimpleAdapter可定制layout的列表项:setListAdapter(new SimpleAdapter(this, List<Map<String, Object>> data, itemLayout, new String[] { "dataKey" }, new int[] { layout.controlKey }));

  获取选中的列表的数据:(Map<String, Object>)l.getItemAtPosition(position);

  每个列表项可以定制layout,复杂显示;

  3. 继承ArrayAdapter:重写getView()、getItem(id)等方法;注意convertView的重用,类比ios中的view重用;

  适用条件:数据为Array;

  4. 继承BaseAdapter:实现了ListAdapter,通过Observer实现view对数据变化的响应,即notifyDataSetChanged;

  适用范围:需要转化数据为Array、更新数据;适用于大部分要灵活定制item view的ListView;

  5. 继承ListAdapter:ListView的最基本类型;

  适用范围:数据设置后不再更改;

原文地址:https://www.cnblogs.com/toven/p/2376778.html