zoukankan      html  css  js  c++  java
  • listview学习之arrayadapter初探

    在进行安卓开发的时候肯定避免不了使用listview,而使用listview又不得不使用adapter,adapter是适配器的意思,如果要了解adapter请移步我的另一篇分享““listview学习之adapter初探””,我们讲过几种常用的适配器,今天先来说说这个arrayadapter,又叫做数组适配器。数组适配器我觉得需要好好学习的一个知识点就是分析它的构造方法了。

    那么我们先从最简单的开始,arrayadapter又叫做数组适配器,是相比较其他适配器比较简单的一种,它显示的数据比较单一,只能用来显示一行文本信息,当然对它可以进行重写,今天暂且不谈arrayadapter的自定义。

    arrayadapter在使用当中的形式是ArrayAdapter<T>,这里的T是泛型的意思,如果对泛型不是很了解的话,可以看看java中有关泛型的介绍。这里不再赘述。

    下面我们来看看arrayadapter的构造方法:

    我们仔细看他的各个构造方法可以知道arrayadapter中适配的数据是字符串数组或者字符串集合,分析里面的参数,第一个参数都是context,就是上下文的意思,第二个参数是一个资源ID,整型的resours表示的是一个展示数据项的布局的xml文件id,然后我们看其他的参数,String[] objects 和List<String> objects表示填充的数据是字符串数组或者字符串集合,这个比较好理解,我们主要看一下int textViewResoursID这个参数,有些人可能对这个参数比较陌生,这肯定是你在使用arrayadapter连接数据的时候没有自定义数据布局了,一般都使用系统自带的xml布局了,我们知道arrayadapter一般是只能显示一行文本信息,平常我们使用系统自带的数据布局也就罢了,但是如果我们自定义了一个数据布局那么该如何与数据连接呢,这时候这个参数就表示我们自定义数据布局当中的这个textview了。

    总的来说创建一个ArrayAdapter<T>适配器对象,我们需要三个方面的内容,第一个是当前的上下文,第二个是数据项显示的布局文件,第三个就是数据源了。

    分析到这相信你对arrayadapter已经有了简单的了解了吧,那么我们继续向下探讨,我们继续观察它的构造方法,不看第一个看剩下的结果我们可以看到arrayadapter在使用的时候直接在构造法中绑定填充数据了,可是第一个构造方法似乎不一样,它并没有一开始就绑定数据,这就表明创建适配器的时候不一定要立即绑定数据源,可以随后根据实际情景进行绑定,那么该如何绑定呢?有以下几种方法


    说到这我们来举个实际的例子来方便大家理解吧

    public class MainActivity extends AppCompatActivity {
    
        ListView demoListview ;
        TextView demoTextview;
        ArrayAdapter<String> adapter;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            demoListview = (ListView)findViewById(R.id.demoListview);
            demoTextview = (TextView)findViewById(R.id.demoTextview);
            //创建一个arrayadapter,但是没有立即绑定数据
            adapter = new ArrayAdapter<String>(this,R.layout.layout_listview,R.id.demoTextview);
            //单独对arrayadapter进行数据绑定
            adapter.add("这是第一个数据");
            adapter.add("这是第二个数据");
            //为listview设置适配器
            demoListview.setAdapter(adapter);
    
        }
    }
    看一下运行效果



    当然我们还可以这样添加数据

    adapter.addAll("1","2");
    看效果
    
    
    还一种绑定数据的方法稍微复杂那么一点点,我们需要先创建一个list数据集合,然后通过ArrayList添加数据
     List<String> item= new ArrayList<String>();
            item.add("王者荣耀");
    做完这一步我们可以通过上述构造方法中的第二个方法进行绑定数据,代码如下
     protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            demoListview = (ListView)findViewById(R.id.demoListview);
            demoTextview = (TextView)findViewById(R.id.demoTextview);
            List<String> item= new ArrayList<String>();
            item.add("王者荣耀");
            //创建一个arrayadapter,但是没有立即绑定数据
            adapter = new ArrayAdapter<String>(this,R.layout.layout_listview,R.id.demoTextview);
            //单独对arrayadapter进行数据绑定
            adapter.add("这是第一个数据");
            adapter.add("这是第二个数据");
            adapter.addAll("1","2");
            adapter.addAll(item);
            //为listview设置适配器
            demoListview.setAdapter(adapter);
    
        }
    }


    运行如下
    
    

    arrayadapter的一些基本用法就分享这么多了,关于arrayadapter我觉得还需要研究的就是他的自定义了,后续会继续分享!




  • 相关阅读:
    记录输出时间
    ***灵感或者没想到的思想
    Managing Difficulties
    4.20
    单调队列
    背包
    线性DP
    可持久化数据结构
    平衡树
    点分治
  • 原文地址:https://www.cnblogs.com/ithuangqing/p/12113710.html
Copyright © 2011-2022 走看看