Как переключить 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); 

Есть идеи?

Solutions Collecting From Web of "Как переключить Android ListView пустой текст?"

Предполагая, что вы находитесь в 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); 

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

См. Ссылку на Android .


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

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

UPDATE: вы должны вызвать метод .setEmptyView(View) в ListView для включения магии.

При установке адаптера

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