android笔记5-listView

来源:互联网 发布:sql2008还原数据库 编辑:程序博客网 时间:2024/05/09 11:32
listView:显示列表的控件;

数据适配器:连接数据源与视图界面的桥梁;
 ArrayAdapter--数组;
 SimpleAdapter--复杂的数据类型;

SimpleAdapter的构造函数:
  new SimpleAdapter(context,data,resource,from,to);
    context--上下文;
    data   --数据源,一个map所组成的list集合,每一个map对应的是listview中的一行,每一个map的key必须包含所有在from中所指的值;
    resource为每一个列表项的布局文件id;
    from   --记录map中的key;
    to     --绑定数据视图的id,与from对应;

ArrayAdapter:
  第一步:声明listView与适配器,初始化listView;
  第二步:new ArrayAdapter<String>(,,);
  第三步;listView.setAdapter(adapter);

SimpleAdapter:
  第一步:声明listView,datalist与适配器,初始化listView;
  第二步:new SimpleAdapter(this,data,resource,from,to);
     datalist= new ArrayAdpter<Map<String,Object>>();
    resource-要在layout中新建一个item的xml文件linearLayout,把控件拖入其中作为每一个列表项的布局格式;
    to为new出resource文件中所有控件的id如new int[]{R.id.imageView,R.id.TextView};
    from为new String[]{"imageView","TextView"};
    data:
    1.创建List<Map<String,Object>> dataList;
    2.dataList=new ArrayList<Map<String,Object>>();
    3.定义函数getData();
 private List<Map<String,Object>> getData()
 {
    for(int i=0;i<20;i++)
    {
    Map<String,Object>map=new HashMap<String,Object>();
    map.put("imageView",R.drawable....);
    map.put("TextView","imooc"+i);
    dataList.add(map);
     }
    return dataList;
 }


监听器:
 OnItemClickListener:单条目的点击事件;
 OnScrollListener:滚动中加载数据;

 OnItemClickListener():
  第一步:在Activity中通过接口方式实现implements OnItemClickListener();
  第二步:让listView加载事件监听器setOnItemClickListener(this);
  第三步:在OnItemClickListener()函数中,通过listView的getItemAtPosition(position)获得位置值,并将值传给position;通过Toast.makeText(context,text,duration).show();
     context--this为上下文;
     text--"position :"+position 输出内容;
     duration--Toast.LENGTH_SHORT为打印时长;

 OnScrollListener():
   第一步:同OnItemClickListener()的第一步;
      创建出了两个函数onScrollStateChanged(),onScroll();
   第二步:让listView加载事件监听器setOnScrollListener(this);
   第三步:在OnScrollStateChange()中scrollState共有3种状态:
        SCROLL_STATE_FLING:用户在手指离开屏幕前用力滑动,由于惯性继续滑动;
        SCROLL_STATE_IDLE:视图已经停止;
        SCROLL_STATE_TOUCH_SCROLL:用户手指没有离开屏幕,正在滑动;


simp_adapter.notifyDataSetChanged();通知UI重新刷新;
1 0
原创粉丝点击