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

android ListView之——ArrayAdapter使用

2015-06-09 14:24 453 查看
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: