关闭

三种Android适配器

62人阅读 评论(0) 收藏 举报

 第一种:arrayAdapter

               听名字就知道,这是一种以一种类似数组的方式来存储数据,然后再传递的适配器,也是比较简单的适配器。

               用法:1)建一个ListView控件,并加上id,方法与textView一样;另外再单独建一个textView单没有布局;

                         2)实例化ListView得到mLextView,并监听;

                         3)  获得数据源,如String[] data={"java","android","j2se","html","wphone","net","javaScript"};就是列出你                                想展示的东西;

                         4)  实例化适配器  arrayAdapter adapter=new arrayAdapter (this,R.DANDUtxt_layout,data);

                         5)  链接适配器与数据源     mLextView.setAdapter(adpter);



 第二种:simpleAdapter

               据说这是最难最常用的适配器之一;用法与arrayAdapter大同小异;

               

用法:1)建一个ListView控件,并加上id,方法与textView一样;另外再单独建一个布局,内容根据实际情况来写;

                         2)实例化ListView得到mLextView,并监听;

                         3)  获得数据源,这里会用到HASHMap和ArrayList来存储数据;                    

                         4)  实例化适配器  arrayAdapter adapter=new arrayAdapter (this,R.DANDUtxt_layout,data);

                         5)  链接适配器与数据源     mLextView.setAdapter(adpter);

                         


  第三种:baseAdapter 自定义适配器,也是我认为最难的一种,这里我只有一点的经验可以分享;

               用法:1)建一个类继承自baseAdapter;里面要实现4种方法;如图

                                

                                这里前三种方法都比较简单,我上面已经写好了,就第四种才是真正自定义的部分;

                                在这里一般思路是先定义一个layoutinflater将你写的布局解析成view控件,再从中分别取值;

                                将数据源的值赋给取到的view控件;最后就可以使用这个自己定义的适配器了

                                 下面来举个例子,

                                  public View getView(int position, View convertView, ViewGroup parent) {
        View v = layoutInflater.inflate(R.layout.item_adapter_simple_view,null);//将布局解析生成View对象
        //从View对象中获取控件实例
        ImageView iconImg = (ImageView) v.findViewById(R.id.adapter_simple_imageview);
        TextView titleTxt = (TextView) v.findViewById(R.id.adapter_simple_title_txt);
        TextView contentTxt = (TextView) v.findViewById(R.id.adapter_simple_content_txt);


        HashMap<String,Object> item = (HashMap<String, Object>) getItem(position);
        int icon = (int) item.get("icon");
        String title = (String) item.get("title");
        String content = (String) item.get("content");


//        iconImg.setBackgroundResource(icon);  // 通过代码设置ImageView背景  background
        iconImg.setImageResource(icon); //通过代码设置 ImageView控件内容  src
        titleTxt.setText(title);
        contentTxt.setText(content);


        return v;
    }

   

                         

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2609次
    • 积分:329
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:3篇
    • 译文:1篇
    • 评论:0条
    文章分类