使用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. TextViewemptyView=newTextView(context);
  2. emptyView.setLayoutParams(newLayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
  3. emptyView.setText(“Thisappearswhenthelistisempty”);
  4. emptyView.setVisibility(View.GONE);
  5. ((ViewGroup)list.getParent()).addView(emptyView);
  6. list.setEmptyView(emptyView);


结果真的可行!

也就是说,这个EmptyView必须要跟ListView一样,也是在view树上的一个控件。

更多相关文章

  1. android studio系列之使用指南
  2. android 实用代码片段整理
  3. [代码分享] 乐淘Android客户端源码
  4. 如何使用Android(安卓)Studio开发/调试Android源码
  5. android:required="false"
  6. 在Ubuntu上下载编译安装Android最新内核源代码
  7. Android设置Settings:PreferenceFragment【4】
  8. android 自定义 permission 权限
  9. android:屏幕自适应(转)

随机推荐

  1. TextView实现跑马灯的效果
  2. android 源代码定制--- 状态栏
  3. 仿IOS透明通知栏(仅支持4.4以上版本)
  4. Android Studio下使用JAVA+Appium进行自
  5. Android webkit keyevent 事件传递过程
  6. Android异步更新UI的四种方式
  7. PreferenceActivity的使用
  8. 麦子学院android老师分享android实现list
  9. Android MQTT消息推送实践
  10. Android自动测试之monkeyrunner工具