如何处理需要填充的数据为空的情况
2017-05-10 19:11
399 查看
如何处理需要填充的数据为空的情况?
ListView及其他继承自AdapterView的类都有一个简便的处理这种情况的方法:setEmptyView(View)。
当ListView的Adapter为空或者Adapter的isEmpty()方法返回true的时候,它将会把设置的emptyview绘制出来。
举个栗子,假设我们需要创建一个应用来管理我们的待办事项,我们的主页面将会是一个用来展示这些待办事项的ListView。
而当我们第一次载入进这个应用时,待办事项必然为空。此时我们就可以利用一个图片或者一段描述性的话来表达“无待办事项”。
看看XML布局文件:
[html]
view plain
copy
<FrameLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width= "fill_parent"
android:layout_height= "fill_parent"
android:orientation= "vertical" >
<ListView
android:id ="@+id/my_list_view"
android:layout_width ="fill_parent"
android:layout_height ="fill_parent" />
<ImageView
android:id ="@+id/empty_view"
android:layout_width ="fill_parent"
android:layout_height ="fill_parent"
android:src ="@drawable/empty_view" />
lt;/FrameLayout>
再来看自定义的drawable/empty_view文件:
[html]
view plain
copy
<shape xmlns:android = "http://schemas.android.com/apk/res/android"
android:shape= "rectangle" >
<solid android:color= "#AA00FF00" />
</shape>
[align=left] 是一个自定义的shape,当ListView没数据的时候才展现出来。
[/align]
[align=left] 最后再看MainActivity文件:[/align]
[java]
view plain
copy
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<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,strs);
mListView.setAdapter(adapter);*/
}
}
ListView及其他继承自AdapterView的类都有一个简便的处理这种情况的方法:setEmptyView(View)。
当ListView的Adapter为空或者Adapter的isEmpty()方法返回true的时候,它将会把设置的emptyview绘制出来。
举个栗子,假设我们需要创建一个应用来管理我们的待办事项,我们的主页面将会是一个用来展示这些待办事项的ListView。
而当我们第一次载入进这个应用时,待办事项必然为空。此时我们就可以利用一个图片或者一段描述性的话来表达“无待办事项”。
看看XML布局文件:
[html]
view plain
copy
<FrameLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width= "fill_parent"
android:layout_height= "fill_parent"
android:orientation= "vertical" >
<ListView
android:id ="@+id/my_list_view"
android:layout_width ="fill_parent"
android:layout_height ="fill_parent" />
<ImageView
android:id ="@+id/empty_view"
android:layout_width ="fill_parent"
android:layout_height ="fill_parent"
android:src ="@drawable/empty_view" />
lt;/FrameLayout>
再来看自定义的drawable/empty_view文件:
[html]
view plain
copy
<shape xmlns:android = "http://schemas.android.com/apk/res/android"
android:shape= "rectangle" >
<solid android:color= "#AA00FF00" />
</shape>
[align=left] 是一个自定义的shape,当ListView没数据的时候才展现出来。
[/align]
[align=left] 最后再看MainActivity文件:[/align]
[java]
view plain
copy
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<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,strs);
mListView.setAdapter(adapter);*/
}
}
相关文章推荐
- 如何处理需要填充的数据为空的情况?
- 论如何是用RTP打包H264数据(发送单包的情况,分包发送还需要另外分析)
- 关于网站大并发情况下的数据的初始化如何处理。
- 什么情况需要数据归一化处理?
- 内存有限的情况下 Spark 如何处理 T 级别的数据
- 多视的情况下如何在视之间传递数据?MFC的做法是利用文档来处理
- 如何更好处理数据仓库服务必然需要云数据库HybridDBforPostgreSQL
- 论如何是用RTP打包H264数据(发送单包的情况,分包发送还需要另外分析)
- 具有自动截断功能的函数:对比:strcpy、strncpy、sprintf、snprintf在写入的数据大于缓冲区的情况下如何处理
- 前端奇淫技巧(一)之前端遇到需要数据遍历的如何处理
- 如何更好处理数据仓库服务必然需要云数据库HybridDBforPostgreSQL
- 对于需要根据客户操作更新数据的情况的去重复处理
- 如何将需要处理的数据加载到项目中Scala项目中
- 海量数据排序——如果有1TB的数据需要排序,但只有32GB的内存如何排序处理?
- 内存有限的情况下 Spark 如何处理 T 级别的数据?
- 如何更好处理数据仓库服务必然需要云数据库HybridDBforPostgreSQL
- 一次 read by other session 的处理过程--数据走索引需要看索引字段的数据分布情况
- JSP设计模式基础:View Helper模式——学习如何使用View Helper模式使得Model数据适应表现层的需要(3)
- JSP设计模式基础:View Helper模式——学习如何使用View Helper模式使得Model数据适应表现层的需要(1)
- 针对数据库中处理提取多份实体,而这些实体又分别包含1对多的相关数据情况的性能的架构