ListActivity的默认布局由一个位于屏幕中心的全屏列表构成。如果你不想使用默认的布局,可以在onCreate()方法中通过setContentView()方法设定你自己的布局。如果指定你自己定制的布局,你的布局中必须包含一个id为"@id/android:list"的ListView。 若你还指定了一个id为"@id/android:empty"的view,当ListView中没有数据要显示时,这个view就会被显示,同时 ListView会被隐藏。下面代码中有注释,这样更能让我们的明白代码中的含义。
main布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="8dp"
android:paddingRight="8dp">
<!-- 除了ListView和id为@id/android:empty的view之外,我们还可以任意添加view -->
<TextView
android:id="@+id/android:title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="The following is a list:" />
<!-- id为@id/android:list的ListView为客户化的list布局,如果没有,则系统会调用默认的布局 -->
<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00FF00"
android:layout_weight="1"
android:drawSelectorOnTop="false" />
<!-- 当ListView中没有数据时,id为@id/android:empty的view就会显示出来 -->
<TextView
android:id="@id/android:empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="#FF0000"
android:text="No data"
android:gravity="center_vertical|center_horizontal" />
</LinearLayout>
显示Listview的item布局文件:
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text1"
android:textSize="16sp"
android:textStyle="bold"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
xmlns:android=http://schemas.android.com/apk/res/android
添加到自己的TextView中就ok.
因为根节点必须是TextView,
不然会报错,arrayadapter requires the resource id to be
主界面:public class List_Activity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.list_activity);
initViews();
}
private void initViews(){
List<String> list = new ArrayList<String>();
list.add("星期一");list.add("星期一");list.add("星期一");
list.add("星期一");list.add("星期一");list.add("星期一");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, list);
this.setListAdapter(adapter);
}
}