ListView

来源:互联网 发布:打开本机端口 编辑:程序博客网 时间:2024/06/05 05:17

ListView的显示和缓存机制

总结来讲:
需要才显示,显示完就被回收到缓冲池中。

BaseAdapter

构造方法要传一个context,要不要传list?不一定?传了好像也没用

public MyAdapter(Context context) {        this.mInflater = LayoutInflater.from(context);    }

SimpleAdapter

new SimpleAdapter(context, data, resource, from, to);    //参数:上下文;     //data数据源:List<? extends Map<String ?>>,一个由map所组成的list集合.每一个map对应listview列表中的一行;每一个map中的键必须包含所有在from中指定的键     //resource:列表项布局文件对应的id,R.id.item     //from:map中的键名(自己取),new String[] { "image", "text" }     //to:绑定数据视图中的组件id,与from对应.new int[] { R.id.image,R.id.text }// 加载SimpleAdapter数据源private List<Map<String, Object>> getData() {    list = new ArrayList<Map<String, Object>>();    Map<String, Object> map = new HashMap<String, Object>();    map.put("text", "java");    map.put("image", R.drawable.ic_launcher);    list.add(map);

ArrayAdapter

 //参数:泛型;上下文;listview加载的每一个列表项对应的布局文件;数据源    new ArrayAdapter<T>(context, textViewResourceId, data);

监听器

1.onItemClickListener:监听单个条目的点击事件

 //注意是item    listView.setOnItemClickListener(new OnItemClickListener() {        @Override        public void onItemClick(AdapterView<?> parent, View view,                int position, long id) {            listView.getItemAtPosition(position);//返回一个条目对象(object)//position从0开始        }    });`
  • 2.onScrollListener:监听滚动变化,在滚动中加载数据

    listView.setOnScrollListener(new OnScrollListener() {    @Override    public void onScrollStateChanged(AbsListView view, int scrollState) {        switch (scrollState) {        //手指按在屏幕上,正在滑动        case SCROLL_STATE_TOUCH_SCROLL:            break;        //手指离开屏幕前用力的滑动        case SCROLL_STATE_FLING:            break;            //停止滑动        case SCROLL_STATE_IDLE:            break;        default:            break;        }    }    @Override    public void onScroll(AbsListView view, int firstVisibleItem,            int visibleItemCount, int totalItemCount) {        //?    }});
0 0