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
相关文章
相关标签/搜索