<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行:
- TextView emptyView = new TextView(context);
- emptyView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
- emptyView.setText(“This appears when the list is empty”);
- emptyView.setVisibility(View.GONE);
- ((ViewGroup)list.getParent()).addView(emptyView);
- list.setEmptyView(emptyView);
結果真的可行!