ListView 空值時的友好提示

作 項目的時候,若是ListView或者gridView爲空,進入界面一大片的空白,不是很好看,這個時候咱們但願沒有數據的時候給出提示,徹底能夠經過 手動判斷,當ListView中的size爲0,顯示或者隱藏某個TextView。可是略顯麻煩。下面說兩種顯示的方法。


關鍵方法是listview( http://developer.android.com/reference/android/widget/ListView.html)中父類AdapterView的setEmptyView(View emptyView)方法
php




第一種:
分兩種狀況,若是繼承的是ListActivity:
<ListView android:id="@id/android:list".../>
<TextView android:id="@id/android:empty.../>
當列表爲空時就會自動顯示TextView 。
若是繼承的是通常的Activity:
能夠
   <ListView
        android:id="@+id/list_sms_history"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:scrollingCache="false" />
    <TextView
        android:id="@+id/noSmsData"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical|center_horizontal"
        android:text="尚未發送太短信,看不到短信記錄!" />
?
代碼片斷,雙擊複製
01
02
03
callLogList = (ListView)findViewById(R.id.call_log_list);
               myEmpty=(TextView)findViewById(R.id.myEmptyText);
               callLogList.setEmptyView(myEmpty);

第二種:直接寫提示信息:
而後在代碼中得到對象之後:
?
代碼片斷,雙擊複製
01
02
03
04
05
06
07
TextView emptyView =newTextView(SmsSendHistoryActivity.this);  
                       emptyView.setLayoutParams(newLayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));  
                       emptyView.setText("尚未發送太短信,看不到短信記錄!");  
                       emptyView.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);
                       emptyView.setVisibility(View.GONE);  
                       ((ViewGroup)list_sms_send.getParent()).addView(emptyView);  
                       list_sms_send.setEmptyView(emptyView);




豌豆莢截圖20130518112724.png (32.45 KB, 下載次數: 0) html


豌豆莢截圖20130518112724.png
相關文章
相關標籤/搜索