开发者

Issue using setEmptyView on a ListActivity

开发者 https://www.devze.com 2022-12-22 08:31 出处:网络
I have the following setup, and the empty view text doesn\'t show up... protected void onCreate(Bundle savedInstanceState) {

I have the following setup, and the empty view text doesn't show up...

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
            getListView().setEmptyView(findViewById(R.id.empty));
    getListView().setTextFilterEnabled(true);

    setListAdapter(null);// to have empty list
}

The layout file is:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/myScrollLayout"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">
    <FrameLayout android:layout_width="fill_parent"
        android:layout_height="0dip" android:layout_weight="1">
        <ListView android:id="@android:id/list" android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:drawSelectorOnTop="false" />

        <!-- Here is the view to show if the list is emtpy -->
        <ScrollView
            android:id="@android:id/empty" android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <TextView android:id="@+id/emptyText" android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:text="@string/contact_empty_help"
                android:textSize="20sp" android:textColor="?android:attr/textColorSecondary"
                android:paddingLeft="10dip" android:paddingRight="10dip"
                android开发者_如何学JAVA:paddingTop="10dip" android:lineSpacingMultiplier="0.92" />
        </ScrollView>
    </FrameLayout>
</LinearLayout>

String is defined as:

<string name="contact_empty_help">"You don't have any contacts to display.\n\nTo add contacts, you have to:\n
        \n<li><font fgcolor="#ffffffff">Go to <b>Contacts</b></font> application to create new contacts\n</li>
        \n<li><font fgcolor="#ffffffff"><b>Import from VCF file</b></font>, this is available in Contacts menu, the file most be on the root of the SD card\n</li>"
        </string>

Since the list is empty, it should show me the text defined. I followed the example from the List8

https://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List8.html

https://developer.android.com/resources/samples/ApiDemos/res/layout/list_8.xml


I was missing a setContentView(R.layout.listview); and because of this the view was not picked upped by findViewById.


In fact, you doesn't need this line in your java code

getListView().setEmptyView(findViewById(R.id.empty));

The couple of Android ID android:id="@android:id/list" and android:id="@android:id/empty" are exclusive !

Best regards, Division-par-zero.


Shouldn't

<ScrollView
        android:id="@android:id/empty"

be

<ScrollView
        android:id="@+id/empty"

? I don't know if that makes any difference.

Are you sure that setListAdapter(null); actually initializes the Adapter, rather than just ignoring the command?

0

精彩评论

暂无评论...
验证码 换一张
取 消