Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 50個Android開發技巧(24 處理ListView數據為空的情況)

50個Android開發技巧(24 處理ListView數據為空的情況)

編輯:關於Android編程

在移動平台上為用戶展示數據的一個常用方法是將數據填充進一個List內,而此時需要注意的一點就是:
原文地址:(http://blog.csdn.net/vector_yi/article/details/24936163)
如何處理需要填充的數據為空的情況? ListView及其他繼承自AdapterView的類都有一個簡便的處理這種情況的方法:setEmptyView(View)。 當ListView的Adapter為空或者Adapter的isEmpty()方法返回true的時候,它將會把設置的emptyview繪制出來。
舉個栗子,假設我們需要創建一個應用來管理我們的待辦事項,我們的主頁面將會是一個用來展示這些待辦事項的ListView。 而當我們第一次載入進這個應用時,待辦事項必然為空。此時我們就可以利用一個圖片或者一段描述性的話來表達“無待辦事項”。 看看XML布局文件:
 <frameLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    android:layout_width= "fill_parent"
    android:layout_height= "fill_parent"
    android:orientation= "vertical" >

    

    

</frameLayout>

再來看自定義的drawable/empty_view文件:

    

是一個自定義的shape,當ListView沒數據的時候才展現出來。

最後再看MainActivity文件:
public class MainActivity extends Activity {

  private ListView mListView;

  @Override
  public void onCreate (Bundle savedInstanceState ) {
    super. onCreate( savedInstanceState );
    setContentView (R .layout .main );

    mListView = (ListView ) findViewById (R .id .my_list_view );
    mListView. setEmptyView (findViewById (R .id .empty_view ));
    /*String[] strs=new String[]{"1","2"};
    ArrayAdapter adapter=new ArrayAdapter(this, android.R.layout.simple_list_item_1,strs);
    mListView.setAdapter(adapter);*/
   
  }

}

僅僅創建一個ListView並設置了EmptyView為main.xml中創建的ImageView。注釋內的代碼用來測試當ListView有數據時,emptyview會不會顯示。
當然,你可以利用ViewStub來作為EmptyView,利用ViewStub可以延遲加載視圖,確保在不需要顯示EmptyView的時候它不會被渲染。關於ViewStub的用法,我在之前的博文《延遲加載和避免重復渲染》已進行過敘述。


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved