Android開發之ListView:setEmptyView的問題

使用listView或者gridView時,當列表爲空時,有時需要顯示一個特殊的empty view來提示用戶,一般情況下,如果你是繼承ListActivity,只要 
<ListView android:id="@id/android:list".../> 
<TextView android:id="@id/android:empty.../> 
當列表爲空時就會自動顯示TextView 

但是,如果繼承Activity的話,想出現上面的效果,就需要手動 

<ListView android:id="@+id/list" .../> 
<TextView android:id="@+id/empty" .../> 

ListView list= (ListView)findViewById(R.id.mylist); 
TextView tv= (TextView)findViewById(R.id.myempty); 

list.setEmptyView(tv); 

誤區: 
setEmptyView(View)這個函數很有誤導性,有時可能會在代碼中寫EmptyView,像下面這樣: 

TextView tv= new TextView(this); 
tv.setText("this is a empty view") 
setEmptyView(tv); 
這樣是不行的。。。 

但是後來我在老外的網上說下面這樣是可行的,注意第4,5行: 
Java代碼  收藏代碼
  1. TextView emptyView = new TextView(context);  
  2. emptyView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));  
  3. emptyView.setText(“This appears when the list is empty”);  
  4. emptyView.setVisibility(View.GONE);  
  5. ((ViewGroup)list.getParent()).addView(emptyView);  
  6. list.setEmptyView(emptyView);  

結果真的可行!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章