Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带有简单列表项多项选择布局的空ListView_Android - Fatal编程技术网

Android 带有简单列表项多项选择布局的空ListView

Android 带有简单列表项多项选择布局的空ListView,android,Android,如果我使用简单列表项多选布局,如何处理空列表视图 “Android开发者”说我应该使用Android前缀 android:id=“@android:id/empty 但无法记住如何将其用于简单的列表项多项选择 protected ListView mFavList; ArrayList<String> fakeFavs; mFavList.setAdapter(new ArrayAdapter<String>(this.android.R.layout.simple_

如果我使用简单列表项多选布局,如何处理空列表视图

“Android开发者”说我应该使用Android前缀 android:id=“@android:id/empty 但无法记住如何将其用于简单的列表项多项选择

protected ListView mFavList; 
ArrayList<String> fakeFavs;

mFavList.setAdapter(new ArrayAdapter<String>(this.android.R.layout.simple_list_item_multiple_choice,fakeFavs);  
protectedlistview-mFavList;
ArrayList fakeFavs;
setAdapter(新的ArrayAdapter(this.android.R.layout.simple\u list\u item\u multiple\u selection,fakeFavs);
如果fakeFavs为空?

我解决了我的问题

我需要的是main.xml布局中的“empty”标记和代码字符串: mFavList.setEmptyView(findViewById(android.R.id.empty))

在我的程序中,fakeFavs是从文本文件填充的。 如果文件为空,则正确处理空列表

也许它会对某些人有用。工作示例:

import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class HelloAndroid3 extends Activity {
/** Called when the activity is first created. */

static final String split_symbol = "\n";
protected ListView mFavList;
protected ArrayList<String> fakeFavs;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    fakeFavs = new ArrayList<String>();
    this.mFavList = (ListView) this.findViewById(R.id.list_favorites);
    refreshFavListItems();
}

private void refreshFavListItems() {

            //put some code here that populates fakeFavs
            //.......
    mFavList.setAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_multiple_choice, fakeFavs));
    mFavList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
            mFavList.setEmptyView(findViewById(android.R.id.empty));
            //if fakeFavs will be empty, list shows "No Data" 
}
import java.util.ArrayList;
导入android.app.Activity;
导入android.os.Bundle;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
公共类HelloAndroid3扩展了活动{
/**在首次创建活动时调用*/
静态最终字符串拆分\u symbol=“\n”;
受保护的列表视图mFavList;
受保护的ArrayList fakeFavs;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
fakeFavs=newarraylist();
this.mFavList=(ListView)this.findViewById(R.id.list\u收藏夹);
refreshFavListItems();
}
私有无效刷新FavListItems(){
//在这里放一些代码来填充假货
//.......
mFavList.setAdapter(新阵列适配器,
android.R.layout.simple_list_item_多项选择,fakeFavs);
mFavList.setChoiceMode(ListView.CHOICE\u MODE\u MULTIPLE);
mFavList.setEmptyView(findViewById(android.R.id.empty));
//如果FAKEFAV为空,列表显示“无数据”
}
}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="match_parent" >
    <ListView android:id="@+id/list_favorites"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1.0"
    />
    <TextView android:id="@android:id/empty"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#FF0000"
    android:text="No Data"/>


在设置适配器之前尝试初始化
fakeFavs=new ArrayList()
。是的,在设置适配器之前,代码中有初始化字符串,但是fakeFavs(这是用户联系人列表)必须在程序第一次运行时设置为null,因为列表是空的。我需要正确处理空列表,以显示例如消息“No Data”。使用fakeFavs.isEmtpy()然后代替fakeFavs==null,例如代码将是
if(fakeFavs.isEmpty()){mFavList.setAdapter(新的ArrayAdapter(这个,android.id.empty,fakeFavs))}else{mFavList.setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_item_multiple_choice,fakeFavs));
,但是“empty”标记在哪里?如果我使用simple_list_item_multiple_choice作为布局,我应该写什么?