使用适配器ArrayAdapter实现ListView和如何继承ListActivity实现ListView。
ArrayAdapter是简单易用的Adapter,通常用于将数组或List集合的多个值包装成多个列表项。请看如下代码:
XML布局文件:
<ListView
android:id="@+id/list1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="#f00"
android:dividerHeight="2px"
android:headerDividersEnabled="false"
/>
Java:
public class ArrayAdapterTest extends Activity
{
@Override
protectedvoid onCreate(BundlesavedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView list1 = (ListView)findViewById(R.id.list1);
// 定义一个数组
String[] arr = { "呵呵", "哈哈", "哦哦" };
// 将数组包装ArrayAdapter
ArrayAdapter<String> adapter= new ArrayAdapter<String>
(this, R.layout.array_item,arr);
// 为ListView设置Adapter
list1.setAdapter(adapter);
}
}
其中Java在实例化ArrayAdapter时使用了另一个XML布局文件,如下:
<?xml version="1.0"encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="24dp"
android:padding="10px"
android:shadowColor="#f0f"
android:shadowDx="4"
android:shadowDy="4"
android:shadowRadius="2"/>
使用ListActivity实现ListView的主要情况是当前窗口仅仅只需要实现一个列表,这样实现起来方便快捷,以下程序也是使用ArrayAdapter实现,只是少了布局文件。
Java:
public class ListActivityTest extends ListActivity
{
@Override
publicvoid onCreate(BundlesavedInstanceState)
{
super.onCreate(savedInstanceState);
// 因为继承了ListActivity来实现ListView,所以无需使用布局文件
String[] arr = { "呵呵", "哈哈", "哦哦" };
// 创建ArrayAdapter对象
ArrayAdapter<String> adapter= new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice,arr);
// 设置该窗口显示列表
setListAdapter(adapter);
}
}