展会信息港展会大全

50个Android开发技巧(24 处理ListView数据为空的情况)
来源:互联网   发布日期:2015-11-26 12:04:32   浏览:2107次  

导读:在移动平台上为用户展示数据的一个常用方法是将数据填充进一个List内,而此时需要注意的一点就是:原文地址:(http://blog.csdn.net/vector_yi/article/de...

在移动平台上为用户展示数据的一个常用方法是将数据填充进一个List内,而此时需要注意的一点就是:

原文地址:(http://blog.csdn.net/vector_yi/article/details/24936163)

如何处理需要填充的数据为空的情况?

ListView及其他继承自AdapterView的类都有一个简便的处理这种情况的方法:setEmptyView(View)。

当ListView的Adapter为空或者Adapter的isEmpty()方法返回true的时候,它将会把设置的emptyview绘制出来。

举个栗子,假设我们需要创建一个应用来管理我们的待办事项,我们的主页面将会是一个用来展示这些待办事项的ListView。

而当我们第一次载入进这个应用时,待办事项必然为空。此时我们就可以利用一个图片或者一段描述性的话来表达“无待办事项”。

看看XML布局文件: <frameLayout xmlns:android = "http://schemas.android.com/apk/res/android"

android:layout_width= "fill_parent"

android:layout_height= "fill_parent"

android:orientation= "vertical" >

</frameLayout>

再来看自定义的drawable/empty_view文件:

是一个自定义的shape,当ListView没数据的时候才展现出来。

最后再看MainActivity文件:

public class MainActivity extends Activity {

private ListView mListView;

@Override

public void onCreate (Bundle savedInstanceState ) {

super. onCreate( savedInstanceState );

setContentView (R .layout .main );

mListView = (ListView ) findViewById (R .id .my_list_view );

mListView. setEmptyView (findViewById (R .id .empty_view ));

/*String[] strs=new String[]{"1","2"};

ArrayAdapter adapter=new ArrayAdapter(this, android.R.layout.simple_list_item_1,strs);

mListView.setAdapter(adapter);*/

}

}

仅仅创建一个ListView并设置了EmptyView为main.xml中创建的ImageView。注释内的代码用来测试当ListView有数据时,emptyview会不会显示。

当然,你可以利用ViewStub来作为EmptyView,利用ViewStub可以延迟加载视图,确保在不需要显示EmptyView的时候它不会被渲染。关于ViewStub的用法,我在之前的博文《延迟加载和避免重复渲染》已进行过叙述。

赞助本站

人工智能实验室

相关热词: android开发

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港