您的位置:首页 > 移动开发 > Android开发

Android ListView/GridView 中Adapter的用法(1)

2016-07-18 13:49 363 查看
      Android中的布局控件主要分为简单控件和复杂控件两种,而其中ListView 由于其用法较为复杂抽象,也是学习Android界面编程的一大难点,下面笔者就以多年的开发经验讲解一下ListView 中SimpleAdapter的用法。

                                           


                

     由上图可以看出,Listview就像一个ArrayList,里面用adapter来填充,事实上ArrayList在ListView中扮演了重要角色。

       SimpleAdapter使用详解

      首先我们需要新建一个ListView,在xml文件中,在此不再赘述过程。

      对于使用ListView,主要分为三点:

      1.处理数据,我们需要将要放置的数据进行处理,以便在ListView中使用。

      2.得到adapter。

      3.填充到ListView中。

      以下我将结合示例代码讲解。

           1.处理数据

        由于数据是变化多样的,而ListView中只能存储特定格式的,所以我们要对数据进行处理

        ListView中的数据以ArrayList<HashMap<String,String>>的格式来存储。看起来是不是很复杂又很熟悉,没错,这就是ArrayList与HashMap的结合体,每一个ArrayList元素是一个HashMap,其中HashMap的key以及value需要为String类型。有了这样的理论基础我们就可以开始写示例了,下面我将模拟手机通讯录,号码由随机数产生

       


       以上为数据处理函数,处理的数据变为ArrayList<HashMap<String,String>>类型,第一步结束。

       2.得到adapter

          此步骤使用系统提供的SimpleAdapter完成

                                SimpleAdapter sa = new SimpleAdapter(SimpleAdapterActivity.this,
list, 
R.layout.item_line2,
new String[]{"name","phonenumber"}, 
new int[]{R.id.name,R.id.number});

          五个参数分别代表:当前上下文,处理好的list,子布局,HashMap中的key,子布局id.

          ListView就像一个容器,划分了好多空间,每一块空间如何使用,就需要子布局,由于我要放置姓名手机号,所以使用两个TextView。

                                 

        那么为何要将子布局id输入呢,此处和第四个参数有关联,系统会把对应key的value值放在对应的子布局上,也就是将数据放到指定地点。

         3.放置adapter

                                                               

          此处lv为ListView实例,调用setAdapter方法。

                     lv.setAdapter(sa);

                 以上就是SimpleAdapter的使用方法,那么如何监听SimpleAdapter呢,可以使用setOnItemClickListener方法

                      lv.setOnItemClickListener(new OnItemClickListener() {
                       @Override
                       public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                        long arg3) {
                       /   / TODO Auto-generated method stub

                       Toast.makeText(SimpleAdapterActivity.this, arg2 + " ",Toast.LENGTH_SHORT).show();
                       }
                       });

          其中arg2参数代表单击的ListView中的行位置。

          以上就是SimpleAdapter的使用方法,BaseAdapter将会稍后介绍。敬请期待

           
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: