Android ListView:没有项目时的默认文本

Wil*_*cle 31 android listview

我有一个ListView可以有0个自定义项目(如"我的下载").

反正有没有显示默认文本"还没有下载 "?

谢谢 !

编辑:这是我的解决方案,

TextView emptyView = new TextView(getApplicationContext());
emptyView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
emptyView.setTextColor(R.color.black);
emptyView.setText(R.string.no_purchased_item);
emptyView.setTextSize(20);
emptyView.setVisibility(View.GONE);
emptyView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);

((ViewGroup)getListView().getParent()).addView(emptyView);
getListView().setEmptyView(emptyView);
Run Code Online (Sandbox Code Playgroud)

替代文字

Ale*_*lov 36

public void setEmptyView (View emptyView)

Since: API Level 1
Sets the view to show if the adapter is empty
Run Code Online (Sandbox Code Playgroud)

在ListView实例上调用.

例如mListView.setEmptyView(someView);

您可以动态构建视图,或者从xml中扩展视图.


Dus*_*inB 16

除非我误读了您的问题,否则您也可以在布局中指定ID为"@android:id/empty"的任何视图元素,并自动为您处理.例如:

<ListView android:id="@android:id/list" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:visibility="visible"/>

<LinearLayout android:id="@android:id/empty"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:gravity="center">

    <TextView android:text="@string/no_messages"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        style="@style/textBoldLight">
    </TextView>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

  • 这只适用于`ListActivity`.您需要将Alex的方法用于其他"Activity"类. (7认同)