主要是SimpleAdapter 的使用
重点是map
实现监听 分别继承 AdapterView.OnItemClickListener, AbsListView.OnScrollListener
点击监听,和滚动监听
滚动监听实现下拉刷新要记得通知UI线程
public class MainActivity extends Activity {
private ListView listView;
private SimpleAdapter simpleadapter;
private List<Map<String, Object>> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
String[] data = new String[]{"java", "C++", "JavaScript", "Php",
"Python"};
list = new ArrayList<Map<String, Object>>();
//新建数据适配器
//ArrayAdapter(上下文,布局,数据)
//
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, data);
//SimpleAdapter(上下文,data,resource,from,to)
//data:特定泛型的集合 List<? extends Map<String,?>> data 一个Map构成的List集合
// 每一个Map对应ListView中的一行 每一个map必须包含from中所指定的键
//resource:列表中布局文件的ID
//from:记录map中的键名
//to:绑定视图的ID与From对应
simpleadapter = new SimpleAdapter(this,getData(),R.layout.list_item,new String[]{"pic","text"},new int[]{R.id.pic,R.id.text});
listView.setAdapter(simpleadapter);
}
private List<Map<String, Object>> getData(){
Map<String,Object> map= new HashMap<String, Object>();
map.put("pic",R.drawable.icm);
map.put("text","Nastul");
map.put("text1","this is a text ");
list.add(map);
map.put("pic",R.drawable.icm);
map.put("text","Nastul");
map.put("text1","this is a text ");
list.add(map);
return list;
}
}
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
//上下文, 打印信息,时长
Toast.makeText(this,"position"+position, Toast.LENGTH_SHORT).show();
}
@Override
// , i滚动的状态 三种状态
public void onScrollStateChanged(AbsListView absListView, int i) {
switch (i){
case SCROLL_STATE_FLING ://用户滑动时 视图因为惯性继续滑动
Toast.makeText(this,"继续滑动",Toast.LENGTH_SHORT).show();
Map<String,Object> map= new HashMap<String, Object>();
map.put("pic",R.drawable.icm);
map.put("text","Nastul");
map.put("text1","this is a text ");
list.add(map);
//重要! 重新通知UI线程刷新
simpleadapter.notifyDataSetChanged();
break;
case SCROLL_STATE_IDLE://停止滑动
Toast.makeText(this,"停止",Toast.LENGTH_SHORT).show();
break;
case SCROLL_STATE_TOUCH_SCROLL://正在滑动没有离开屏幕
Toast.makeText(this,"正在",Toast.LENGTH_SHORT).show();
break;
}
}
@Override
public void onScroll(AbsListView absListView, int i, int i2, int i3) {
}
}