做项目的时候,如果ListView或者gridView为空,进入界面一大片的空白,不是很好看,这个时候我们希望没有数据的时候给出提示,完全可以通过手动判断,当ListView中的size为0,显示或者隐藏某个TextView。但是略显麻烦。下面说两种显示的方法。
第一种:
分两种情况,如果继承的是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="还没有发送过短信,看不到短信记录!" />
callLogList = (ListView)findViewById(R.id.call_log_list); myEmpty=(TextView)findViewById(R.id.myEmptyText); callLogList.setEmptyView(myEmpty);
第二种:直接写提示信息:
然后在代码中获得对象以后:
TextView emptyView = new TextView(SmsSendHistoryActivity.this); emptyView.setLayoutParams(new LayoutParams(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);