Android 当列表中没有项目时,无法在列表Fragmant中显示空文本视图

Android 当列表中没有项目时,无法在列表Fragmant中显示空文本视图,android,android-listview,android-listfragment,Android,Android Listview,Android Listfragment,我正在listframant中的ViewPager中显示一个列表。我一直在寻找varoius的解决方案,但没有一个对我有效 解决方案1- if ((ArrayList) myList.size() > 0) { setListadapter(myAdapter); } else { ListView lv = (ListView)findViewById(android.R.id.list); TextView emptyText = (TextView)findView

我正在
listframant
中的
ViewPager
中显示一个列表。我一直在寻找varoius的解决方案,但没有一个对我有效

解决方案1-

if ((ArrayList) myList.size() > 0) {
   setListadapter(myAdapter);
} else {
   ListView lv = (ListView)findViewById(android.R.id.list);
   TextView emptyText = (TextView)findViewById(android.R.id.empty);
   lv.setEmptyView(emptyText);
}
if ((ArrayList) myList.size() > 0) {
  setListadapter(myAdapter);
} else {
  setEmptyText("No Items");
}
解决方案2-

if ((ArrayList) myList.size() > 0) {
   setListadapter(myAdapter);
} else {
   ListView lv = (ListView)findViewById(android.R.id.list);
   TextView emptyText = (TextView)findViewById(android.R.id.empty);
   lv.setEmptyView(emptyText);
}
if ((ArrayList) myList.size() > 0) {
  setListadapter(myAdapter);
} else {
  setEmptyText("No Items");
}
当列表为空时,它不显示任何内容,整个页面为空。我也定义了必要的XML。

您有三种方法:
1) 创建片段并将ListView添加到其布局中,然后在ListView后面放置Textview,这样当列表为空时,将显示Textview。如果列表有子项,则不会显示Textview。
2) 如果数组中没有项,请向数组中添加一个包含任何文本的项(如:“无项”),并为listview设置适配器。

3) 设置ListView的标题(布局可以是您想要的textview)

您仍然需要设置适配器。如果适配器为空,则
列表片段
将自动隐藏
列表视图
并显示空视图。因此,正确的方法是:

setEmptyText("No Items");
setListadapter(myAdapter);

根据你的第二点,“无项目”将是listview的列表项。我不想使用它。我想使用id=“android:id/empty”单独的空textview。你可以为你的listview设置标题,从ListFragment获取listview并为其设置标题(标题的布局)。布局可以是你想要的任何东西(例如你的textview)