Как переключить Android ListView пустой текст?

Итак, у меня есть ListView с пустым уловом списка в XML. Он работает нормально. Я установил TextView в ID как пустой список для разных случаев, поэтому мне нужно иметь возможность программно изменять этот текст.

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

Я хотел бы иметь что-то подобное, но это не сработает:

TextView empty = (TextView)listing.findViewById(android.R.id.empty);
empty.setText(R.string.no_display_data);

Любые идеи?

Ответ 1

Предполагая, что вы находитесь в ListActivity, do

TextView empty = getListView().getEmptyView();
empty.setText(R.string.no_display_data);

вы также можете сделать (изменить - следующее неверно)

TextView empty = (TextView)listing.findViewById(R.id.empty); //remove android
empty.setText(R.string.no_display_data);

Ответ 2

Я обычно устанавливаю видимость списка View.INVISIBLE, когда у него нет содержимого. И когда есть контент, он установлен в View.VISIBLE (через метод .setVisibility(int)).

Смотрите ссылку на Android.


Извините, я неправильно понял фактический вопрос. Ответ по-прежнему несколько полезен, хотя - он остается на данный момент.

Вам нужно внести изменения в ID-декларацию в XML. Что-то в форме "@+id/empty", тогда вы сможете использовать второй фрагмент кода, который вы предоставили.

UPDATE: Вы должны называть .setEmptyView(View) -метод на вас ListView, чтобы включить волшебство.

Ответ 3

при настройке адаптера

lview.setEmptyView(rootView.findViewById(R.id.empty_text_view_deductions));

in your xml
     <ListView android:id="@+id/listView_deductions"
            android:layout_width="fill_parent"
            android:groupIndicator="@null"
            android:divider="@color/fc_background_light_gray_transparent"
          android:layout_below="@+id/linear_cost_ll"
            android:dividerHeight="0.1dp"
            android:layout_marginTop="20dp"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:layout_height="match_parent"/>

       <TextView
        android:id="@+id/empty_text_view_deductions"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:ellipsize="none"
        android:gravity="center"
        android:padding="20dp"
        android:singleLine="false"
        android:text="Just make a call to complete the setup for this SIM.Call anyone you wish"
        android:textColor="@android:color/darker_gray"
        android:textSize="@dimen/text_small"
        android:visibility="gone" />