listview 设置数组为空

简介: listview.setEmpty(View view); 使用listView或者gridView时,当列表为空时,有时需要显示一个特殊的empty view来提示用户,今日对这个方法进行一下小结,书写的方式有三种: 1.一般情况下,继承ListActivity,只要

listview.setEmpty(View view);

使用listView或者gridView时,当列表为空时,有时需要显示一个特殊的empty view来提示用户,今日对这个方法进行一下小结,书写的方式有三种:

1.一般情况下,继承ListActivity,只要

<ListView android:id="@id/android:list".../> 
<TextView android:id="@id/android:empty.../>

 

当列表为空时就会自动显示TextView

 

2.如果继承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); 

 

3.我们随性的写法,可用。

private TextView tv ;
 private ListView listView;
listView = (ListView) view.findViewById(R.id.ListView_nav_search_list_poi);
listView.setAdapter(adapter);
tv = new TextView(context);
tv.setVisibility(View.GONE);
tv.setText(R.string.map_favorite_no_data);
((ViewGroup)(listView.getParent())).addView(tv);
listView.setEmptyView(tv );


注意:这里还没有完,如果数据集合发生变更,从有数据到无数据,再有无数据到有数据时,视图会还停留在无数据的状态,不会显示listview,

       这里需要添加一个方法

public void changePoiItems(List<PoiItem> poiItems){
        this.poiItems = poiItems;
        if(poiItems != null && poiItems.size() > 0){
            tv.setVisibility(View.GONE);
            listView.setVisibility(View.VISIBLE);
        }
        //改变数据集合
        if(adapter != null){
            adapter.changeData(poiItems);
        }
    }

发生数据变更的时候,将视图状态改变下即可。

 

目录
相关文章
|
2月前
|
前端开发 JavaScript
判断数组为空的方法有哪些?
本文介绍了多种判断数组是否为空的方法,包括使用 `length` 属性、隐式类型转换、`toString()`、`join()`、`every()`、`reduce()`、`filter()`、`some()` 方法以及循环。每种方法都有其适用场景,其中使用 `length` 属性和隐式类型转换最为常见和简单。文章首发于微信公众号“前端徐徐”。
140 2
判断数组为空的方法有哪些?
更改元素的值
代码示例修改了首个 `&lt;title&gt;` 元素的文本节点值,将它变为 &quot;Easy Cooking&quot;。步骤包括加载 &quot;books.xml&quot; 到 xmlDoc,获取第一个 `&lt;title&gt;` 的子节点,然后设置其nodeValue。
|
XML Java Android开发
Android 中通过Java代码动态生成EditText视图,并循环遍历EditText取出遍历的ID和文本框的值
Android 中通过Java代码动态生成EditText视图,并循环遍历EditText取出遍历的ID和文本框的值
142 0
|
关系型数据库 MySQL
数据为空不能在空值上调用此方法或属性(使用组合框)
数据为空不能在空值上调用此方法或属性(使用组合框)
131 0
|
API C#
C#编程:三种方法判断文本框是否为空-9
C#编程:三种方法判断文本框是否为空-9
305 0
|
C# 索引
C# 获取listview中选中一行的值
C# 获取listview中选中一行的值
848 0
【Flutter】GridView 网格布局 ( GridView.count 构造函数 | crossAxisCount 参数指定每行元素个数 )
【Flutter】GridView 网格布局 ( GridView.count 构造函数 | crossAxisCount 参数指定每行元素个数 )
513 0
【Flutter】GridView 网格布局 ( GridView.count 构造函数 | crossAxisCount 参数指定每行元素个数 )
|
API C#
C#编程:三种方法判断文本框是否为空
C#编程:三种方法判断文本框是否为空
1125 0
|
C#
C# ListBox实现显示插入最新的数据的方法
原文:C# ListBox实现显示插入最新的数据的方法 在我们使用ListBox控件时,如果我们在里面不断的添加一条条数据,但是在我们添加的数据过多超过了ListBox显示的窗口时(此时会产生滑动条), 发现我们无法看到最新添加的数据。
1731 0