在学习Listview时,经常使用ArrayAdapter,今天就将ArrayAdapter的用法总结一下。
ArrayAdapter的构造方法共有6个:
ArrayAdapter(Context context, int resource)
ArrayAdapter(Context context, int resource, int textViewResourceId)
ArrayAdapter(Context context, int resource, T[] objects)
ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)
ArrayAdapter(Context context, int resource, List<T> objects)
ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)
参数分别是:
context:上下文对象,
resource:要显示的布局资源(可以用系统布局或自己的布局)
textViewResourceId:要在布局资源中的显示的textview控件
objects:要显示的数据(数组或集合对象)
代码中的集合:
mList = new ArrayList<>();
for(int i = 0; i < 50;i++){
String str = "aaa"+i;
mList.add(str);
}
1、resource使用系统布局
android.R.layout.simple_list_item_1是系统提供的布局 一个TextView
ArrayAdapter adapter = new ArrayAdapter(MainActivity.this,
android.R.layout.simple_list_item_1,
android.R.id.text1,
new String[]{"aa","bb","cc","dd"});
resource使用自己的布局,又分两种情况
(1)R.layout.item是一个LinearLayout布局,R.id.tv_item是LinearLayout布局中的一个TextView</span>
ArrayAdapter adapter = new ArrayAdapter(MainActivity.this,
R.layout.item,
R.id.tv_item,
mList
)
(2)R.layout.item1是一个布局,只是一个TextView,就不需要textViewResourceId这个参数了。
ArrayAdapter adapter = new ArrayAdapter(MainActivity.this,
R.layout.item1,
mList
);
下面是两个item布局
<?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">
<TextView
android:id="@+id/tv_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:textSize="20sp"
>
</TextView>