博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ListView的setEmptyView方法解析
阅读量:2258 次
发布时间:2019-05-09

本文共 2396 字,大约阅读时间需要 7 分钟。

我们都知道通过ListView的方法setEmptyView可以设置当ListView中没有数据时,显示的界面,下面我将介绍这个方法的使用,并解析。

看一下main布局:

布局other(当ListView中没有数据后,将显示这个布局中的视图):

这个布局中写了这么多控件,目的是告诉大家,这里面可以是任何view

MainActivity中的代码:

package com.example.listviewtest;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.LinearLayout;import android.widget.ListView;public class MainActivity extends Activity {
private ListView listview; private LinearLayout other; private MAdapter adapter; private int count=10; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listview=(ListView) findViewById(R.id.listview); other=(LinearLayout) findViewById(R.id.other); adapter = new MAdapter(); listview.setAdapter(adapter); addEmptyView();//给ListView绑定数据为空时的界面 } private void addEmptyView() { listview.setEmptyView(other); } //清空数据 public void cleardata(View view){ count=0; adapter.notifyDataSetChanged(); } class MAdapter extends BaseAdapter{ public int getCount() { return count; } public Object getItem(int position) { return null; } public long getItemId(int position) { return 0; } public View getView(int position, View convertView, ViewGroup parent) { if(convertView==null){ convertView=View.inflate(MainActivity.this, R.layout.item, null); } return convertView; } }}

在代码中动态的添加:


只需要更改

private void addEmptyView() {         listview.setEmptyView(other);      }

更改为:

private void addEmptyView() {         //代碼中动态添加         TextView emptyView = new TextView(this);           emptyView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));           emptyView.setText("没有数据");           emptyView.setGravity(Gravity.CENTER);           emptyView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);           emptyView.setVisibility(View.GONE);           ((ViewGroup)listview.getParent()).addView(emptyView);           listview.setEmptyView(emptyView);      }

运行效果:


实例一 实例二

你可能感兴趣的文章
Java——IO流(文件分割)_8
查看>>
Java——IO流(Commons)_9
查看>>
Hadoop——Java编写MapReduce代码并运行
查看>>
Java——Idea打包为jar包
查看>>
Java——连接Mysql数据库异常
查看>>
Java——Myql-JDBC-事务回滚不生效(rollback)
查看>>
Java——IDEA-部署Tomct问题
查看>>
Java——Idea-Tomcat响应数据,中文显示问号(?)
查看>>
Linux的初步认识
查看>>
合并k个有序链表
查看>>
关于迷你百度云的解决方案
查看>>
一致性哈希与负载均衡与分布式
查看>>
C++ 构造/析构/赋值运算符
查看>>
5.3交叉工具链使用
查看>>
4.协处理器访问指令
查看>>
5.4.Makefile
查看>>
2.汇编代码的简单实现
查看>>
5.7文件拷贝
查看>>
6、异常向量表的学习---设置SVC模式
查看>>
5.9UDP客户端服务器-基于OK6410
查看>>