2011-06-23 52 views
1

根據ListActivity documentation,當定義了@android:id/empty時,它將顯示一條消息而不是ListView,表示列表中沒有數據。我的Activity子類是我編寫的一個自定義Activity,因此它不能簡單地繼承自己的ListActivity。如何在不是ListActivity的Activity中模擬@android:id/empty的行爲?

我試圖在xml中這樣做來試圖模擬這種行爲。這是我目前的佈局:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:text="@string/titleReviewData" 
     android:gravity="center" android:textSize="24sp" 
     android:layout_margin="10dp" /> 

    <ListView android:id="@+id/reviewList" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="2" /> 

    <TextView android:id="@android:id/empty" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:text="No data" /> 

    <Button android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="0" 
     android:text="@string/textReviseButton" 
     android:onClick="revise" /> 
    <Button android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="0" 
     android:text="@string/textSubmitButton" 
     android:onClick="submit" /> 

</LinearLayout> 

佈局是爲了顯示一個TextView標題,其下的ListView或空消息,並堅持佈局的最下面的兩個鈕釦。不幸的是,添加空的消息不能正確呈現。

我現在在相應的活動中唯一的代碼是設置適配器@id/reviewList和大量代碼來打開對話框的代碼。我該怎麼做呢?

回答

1

在您的活動代碼中,您可以使用listview.setEmptyView(emptyView)將任何視圖設置爲空視圖。它不需要具體的ID:@android:id/empty。您可以在XML文檔中聲明空視圖或使用Java創建它。在你有視圖調用setEmptyView(emptyView)

相關問題