如何切换Android ListView空文本?

Du3*_*Du3 11 android android-listview

所以我在XML中有一个带有空列表catch的ListView.它工作正常.我将ID上的TextView设置为不同情况的空列表,因此我需要能够以编程方式更改该文本.

<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
/>
<TextView android:id="@android:id/empty"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/no_data"
/>
Run Code Online (Sandbox Code Playgroud)

我想有这样的东西,但它不会起作用:

TextView empty = (TextView)listing.findViewById(android.R.id.empty);
empty.setText(R.string.no_display_data);
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Gal*_*lal 17

假设您在ListActivity中,请执行

TextView empty = getListView().getEmptyView();
empty.setText(R.string.no_display_data);
Run Code Online (Sandbox Code Playgroud)

你也可以这样做(编辑 - 以下是不正确的)

TextView empty = (TextView)listing.findViewById(R.id.empty); //remove android
empty.setText(R.string.no_display_data);
Run Code Online (Sandbox Code Playgroud)

  • 对于其他人的参考:如果您不在ListActivity中,而是需要使用ListView,请在ListView上为.setEmptyView(空)分配"empty". (3认同)
  • 你摇滚......第一个是正确的:TextView empty = getListView().getEmptyView(); empty.setText(R.string.no_display_data); (2认同)