«

android ListView之——ArrayAdapter使用

时间:2024-3-2 18:54     作者:韩俊     分类: Android


android开发中有一个非常重要的组件之一——ListView,我们使用的软件基本都会用到ListView。

提到ListView,有三个元素组成来显示出列表效果,分别是:
① 视图View,也就是ListView视图。
② 数据,用来显示的数据。
③ 适配器Adapter,用来将数据映射到视图上。

其中最简单的适配器为ArrayAdapter,它用来适配文本,如果界面不复杂,就可以用它来做适配。下面我们来看一下它的用法。

运行效果:

代码示例:
ArrayAdapter_Aty.java

import com.example.practice.R;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class ArrayAdapter_Aty extends Activity {

    private ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listview_aty);
        listView = (ListView) findViewById(R.id.listView);

        // 数据
        String tvText[] = { "data1", "data2", "data3", "data4", "data5",
                "data6", "data6", "data8", };
        // Adapter1:三个参数
        /*
         * 参数1:上下文context;参数2:一个TextView布局的资源ID,也就是以TextView为根标签的布局文件的名称;
         * 参数3:数据, 一个String[]数组,被映射的数据;
         */
        ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,
                R.layout.listview_item1, tvText);

        // Adapter2:四个参数
        /*
         * 参数1:context,上下文;参数2:resource,布局id,也就是每一个item所对应的布局文件;
         * 参数3:textViewResourceId,参数2对应的布局里面的TextView控件的id;参数4:objects;
         */
        // ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(context,
        // resource, textViewResourceId, objects);

        listView.setAdapter(adapter1);

    }
}

可以看到,上面的Activity里的ArrayAdapter有两个构造方法,分别是三个参数的和四个参数的,运行效果是一样的,差别就在于适配的布局文件。
第一个适配器Adapter1是一个以TextView为根标签,这个布局内只能有TextView这一个控件;
而第二个适配器Adapter2是一个普通的布局文件,TextView只是它内部的一个控件而已。
Adapter1用起来更简单容易,但是如果你需要用的这个列表的每一个item除了要适配文本外还有别的内容,就只能使用Adapter2了。

listview_aty.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </ListView>

</LinearLayout>

listview_item1.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/arrayAdapter_tv_item"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    android:padding="32dp" >

</TextView>

标签: android

热门推荐