您的位置:首页 > 移动开发 > Android开发

空列表empty listview显示提示信息

2015-01-14 15:50 399 查看
1:普通listview很简单,只要在xml中添加提示的布局代码,并在代码中使用setEmptyView就可以了.不需要自己判断列表是空与否

那你只需要以下的代码就可以了:

2:对于可下拉刷新的列表,方法一并不可行,显示提示的时候下拉操作被禁掉,网上有一种取巧的方法,当判断到列表为空时给列表添加一个带有提示的headView,addHeaderView(headView),此时下拉操作仍然可用,当列表加载到数据时把headView,removeHeaderView(headView)去掉即可.不过要注意setOnItemClickListener的位置变化.

3:对于2.3以下版本,你不能在setAdapter()之后调用addHeaderView,否则闪退,特么的,网上说调用addHeaderView之前先调用setAdapter(null),亲测无效.怎么办,正在寻找答案中.

4:最终成功.前面的全部不要,只需要修改adapter,

@Override
public int getCount() {
// TODO Auto-generated method stub
return comment.size()==0?1:comment.size();
}


public View getView(final int position, View convertView, ViewGroup parent) {
if(comment.size()==0){
View emptyView=LayoutInflater.from(cxt).inflate(R.layout.empty_view, null, false);
return emptyView;
}
final ViewHolder holder;
if (convertView == null || !(convertView.getTag() instanceof ViewHolder)) {
// 使用自定义的list_items作为Layout

原理就是当列表为空时给列表添加一个view,不是headView,而是一个普通的列表项,只是内容不同.切记加上判断!(convertView.getTag()
instanceof ViewHolder,否则有数据的时候会使用列表的缓存的emptyView,造成闪退
5:其它思路,把提示放在列表后面做为背景,当列表为空时显示,不为空时隐藏。未测试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息