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