Android ListView无数据项时提示

只需要调用在代码中调用setEmptyView(View emptyView)设置ListView为空时显示这个TextView即可。

布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ListView
        android:id="@+id/myList"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <!-- Here is the view to show if the list is emtpy -->

    <TextView
        android:id="@+id/myText"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:text="No items." />

</LinearLayout >

实现

private ListView mListView = null;

mListView = (ListView) findViewById(R.id.myList);
mListView.setEmptyView(findViewById(R.id.myText));

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, generateStrings());

mListView.setAdapter(adapter);

扩展:

  因为setEmptyView(View emptyView)这个方法是属于AdapterView这个类的,所以除了ListView之外,其他的子类,如GridView,Spinner等,应该也可以用这个方法来设置Adapter数据为空时显示另一个View。

时间: 2024-11-06 10:57:03

Android ListView无数据项时提示的相关文章

Android Studio运行app时提示Please select Android SDK

Android Studio运行app时提示Please select Android SDK 从github clone 代码到本地放到AS后发现,发现并不能点"Run"键运行app,并报错Error:Please select Android SDK: 最后在File->Project Structure中将Build tools version修改,问题解决. 有人说 也可以注释掉build.gradle中"buildToolsVersion '26.0.0'&q

android studio新项目时提示:Plugin is too old, please update to a more recent version

今天想写一个程序来测试一下android studo代码,但是创建好项目后,提示: Error:(1, 0) Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to "8051cdccc746d532152541ee35015fd83699f14"<a href="fixGradleElements&q

linux下使用Android studio启动模拟器时提示 waiting for target device to come online 的问题

方法来自:http://stackoverflow.com/questions/42612468/how-can-i-get-more-information-about-waiting-for-target-device-to-come-online 原因:android studio 下载的linux emulator, 版本26.1, 里面自带的库文件跟系统不兼容,可能存在版本上的兼容问题 文件位于androoid sdk/emulator/lib64/libstdc++ 应该源自SDK自

Android NDK开发编译时提示 Native method not found,NDK *** could not be resolved

Type '*****' could not be resolved Method '******' could not be resolved 等等很多诸如此类的错误 解决方法: 是由于没有将jni.h导入的缘故,而这个文件在ndk的目录下面. 所以,参照以下步骤: Project Properties -> C/C++ General -> Path and Symbols 选择include标签,Add -> $Android_NDK_HOME/platforms/android-

Android ListView的item点击无响应的解决方法

如果listitem里面包括button或者checkbox等控件,默认情况下listitem会失去焦点,导致无法响应item的事件,最常用的解决办法 是在listitem的布局文件中设置descendantFocusability属性. item的布局文件: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.andro

android 从源码分析为什么Listview初次显示时没滚动却自动调用onScroll方法的原因

我们做Listview的分批加载时,需要为Listview调用setOnScrollListener(具体代码可见我上一篇博客) 可是,我们会发现,当运行程序时,listview明明没有滚动,那为什么系统会调用onScroll方法呢?(补充:此时onScrollStateChanged并不会调用) 我们先看setOnScrollListener源码: public void setOnScrollListener(OnScrollListener l) { mOnScrollListener =

解决Android应用安装快完毕时提示签名冲突

最近开发了一个Android手机应用,自己用Eclipse调试安装没问题,使用其他人调试生成的bin下的apk就会出现问题,安装到最后提示"安装签名冲突"错误,想了一下估计是没有给apk统一签名导致,以下说一下如何解决这个问题. 生成keystore文件 命令:keytool -genkey -v -keystore "c:\android\release\relase.keystore" -alias androidbook –storepass paxxword

Android开发时提示Your project contains error(s),please fix them be

有次在使用eclipse写好Android的代码,代码没有报错.然后 想在AVD中运行测试时,总是会弹出错误框,提示信息为: “Your project contains error(s),please fix them before running your application.” 不管是重启AVD 重启eclipse 甚至创建一个新的Android工程项目都不能运行 有几种原因: 1.在不同的电脑下开发,而且文件存放路径不同,错误的主要原因是  “.classpath”  文件的载三方类

首次使用windows管理界面访问安装在UNIX或linux下的DP服务器时提示无权限访问的解决方法

用windwos GUI管理界面连接时提示无权限访问: 在/etc/opt/omni/server/users/userlist 添加一行: "" "*" "*" * "admin"  再次运行DP的图形界面即可正常访问DP了.