一起Talk Android吧(第七十三回:Android中UI控件之ListView基础)

各位看官们,大家好,上一回中咱们说的是Android中UI控件之总结的例子,这一回咱们说的例子是UI控件之ListView。闲话休提,言归正转。让我们一起Talk Android吧!

看官们,我们在前面介绍了常用的控件,不过他们都是单一的控件,本章回中我们将介绍一种常用的复合控件,说它是复合控件的原因在于,它可以把其它的控件包含进来和自己一起使用。那么到底是什么控件呢?它就是ListView控件。ListView是一种用来显示大量数据的组件,当一个屏幕显示不下所有内容时,滑动屏幕就可以继续显示其它内容。接下来我们通过代码结合文本的方式来演示如何使用这种组件。

  • 1.在布局中添加ListView。通常是在Activity或者Fragment的布局文件中添加。
    <ListView
        android:id="@+id/list_view"    //控件id和长宽属性
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </ListView>
  • 2.在代码中获取布局文件中的ListView。通常位于Activity或者Fragment的onCreate方法中。
  private mListView = (ListView)findViewById(R.id.list_view);
  • 3.在代码中为ListView添加需要显示的数据。
    数据不能直接添加到ListView中,而是通过适配器来进行该操作。因此首先要创建适配器,并且把ListView和适配器关联起来。适配器才是存放数据的容器,它存放的数据也就是ListView中显示的数据。下面是具体的代码:
  private String[] data = {"Mon","Tues","Wed","Thur","Fri","Sat","Sun"}; //适配器中存放的数据

   private ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>
    (Activity2.this,android.R.layout.simple_list_item_1,data);

  mListView.setAdapter(arrayAdapter);  //把适配器和ListView关联起来

在上面的代码中,创建的是String类型的适配器。其实适配器使用了泛型,泛型的类型可以自己来指定,我们为了方便才使用了String类型。创建适配器时使用了适配器的构造方法,该方法中第一个参数是ListView所在布局的context,第二个参数是ListView的子布局,也就是ListView中每一个内容的布局,这里使用了系统提供的布局,也可以自己定义一个布局,第三个参数是String类型的数组,数组中为具体的数据。当然了这个数据有多种组织方式,常见的是数组或者List.

  • 4.给ListView添加事件监听器,当ListView中的某个内容被点击时就会触发该监听器,下面是具体的代码。
       mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                String item = data[i];
                Toast.makeText(Activity2.this,"Todat is "+item,Toast.LENGTH_LONG).show();
            }
        });

在上面的代码中,我们重写了onItemClick方法,该方法是回调函数,触发监听器后就会调用它。该方法的第三个参数表示ListView中被点击的内容在ListView中的位置,在本例子中也就是数组中第几个元素。我们取出了数组中的元素并且通过Toast显示出来。下面是程序的运行结果,请大家参考:

这里写图片描述

各位看官,关于Android中UI控件之ListView基础的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!


猜你喜欢

转载自blog.csdn.net/talk_8/article/details/80472540