各位看官们,大家好,上一回中咱们说的是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
基础的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!