首页 > 代码库 > listview 设置数组为空
listview 设置数组为空
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); } }
发生数据变更的时候,将视图状态改变下即可。
listview 设置数组为空
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。