android UI控件之ListView详解之一listView+ArrayAdpater
在安卓开发中LisetView是比较常用的控件,它以列表的形式展示具体的数据内容,在数据多时会出现滚动条,并且数据的长度会自适应屏幕。
下面通过代码来详解ListView。
首先创建一个安卓项目,找到activity_main.xml,添加ListView。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<ListView
android:id="@id/LV"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
</RelativeLayout>
添加完后,布局如图。LsitView是一个列表视图,由很多的Item(条目)组成,每个Item的布局都是相同的,需要注意的是ListView指定了id属性之后,才会看到如图的界面,因为没有添加任何数据,程序运行后,无数据显示。
使用ListView控件时,需要进行数据适配,这样界面才会显示数据,在数据适配时会用到适配器。
<1>ArrayAdpater,是BaseAdpater的子类,我们只需要在构造方法中传入相应的之即可,通常用于适配TexrView控件(例如安卓系统中的设置菜单)
public ArrayAdpater(Context context, int resource)
public ArrayAdpater(Context context,int resource,int textViewResurceId)
public ArrayAdpater(Context context,int resource,T[] objects)
public ArrayAdpater(Context context,int resource,int textViewResurceId,T[] objects)
public ArrayAdpater(Context context, int resource, List<T> objects)
public ArrayAdpater(Context context,int resource,int textViewResurceId,List<T> objects)
// Context context:Context上下文对象
//int resource:Item布局的资源id
//int textViewResurceId:Item布局中相应的TextView的id
//T[] objects:需要适配器的数据数组,数组类型数据
//List<T> objects:需要适配的数据数组,List类型数据
代码(MainActivty.java):
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ListView LV;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LV=(ListView)findViewById(R.id.LV);
//准备集合数据
String[] data={"A","B","C","D","E","F"};
//准备ArrayAdpater对象
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this//上下文,R.layout.item_array//textView布局,data//数据);
//设置Adpater显示列表
LV.setAdapter(adapter);
}
}
item_array.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center_vertical"
android:textSize="20sp"
android:layout_marginLeft="15dp">
</TextView>
一定要更爱TextView中属性,使其美观。