使用simple_list_item_multiple_choice布局清空ListView

时间:2011-08-09 05:59:26

标签: android

如果我使用simple_list_item_multiple_choice布局,如何处理空的ListView?

'Android Developers'说我应该使用android前缀 机器人:ID =“@机器人:ID /空 但是不能记住如何使用simple_list_item_multiple_choice

protected ListView mFavList; 
ArrayList<String> fakeFavs;

mFavList.setAdapter(new ArrayAdapter<String>(this.android.R.layout.simple_list_item_multiple_choice,fakeFavs);  

如果fakeFavs为空?

1 个答案:

答案 0 :(得分:0)

我解决了我的问题。

我需要的所有东西 - 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" 
}

}

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"/>