Android: как лучше всего показать TextView в случае, если в ListView нет элемента? - PullRequest
1 голос
/ 17 июня 2011

Мне нужно показать список элементов, элементы считываются из базы данных, и, возможно, нет элемента, в этом случае, я просто хочу показать TextView, говоря «нет элемента», я думаю, Я мог бы реализовать это, используя относительное расположение, и список, и текст находятся в центре родительского элемента, они отображаются альтернативно, но есть ли способ лучше этого?

Спасибо!

Ответы [ 4 ]

3 голосов
/ 17 июня 2011

Добавление в Aleadam, Билл Моте

Вы можете в любое время вызвать AdapterView.setEmptyView (View v) объекта AdapterView, чтобы прикрепить представление, которое вы хотели бы использовать в качестве пустого представления.

Фрагмент выглядит следующим образом:

 empty = (TextView)findViewById(R.id.empty1);
  list = (ListView)findViewById(R.id.list1);

  list.setEmptyView(empty);

Убедитесь, что вы храните ListView и TextView внутри одного и того же родителя.

Для подробного описания, пожалуйста, обратитесь это

2 голосов
/ 17 июня 2011

Если вы используете ListActivity, это поведение по умолчанию.Если нет, то вы можете установить видимость ListView на GONE, а видимость TextView на VISIBLE.

0 голосов
/ 17 июня 2011

В первом руководстве на веб-сайте разработчиков Android объясняется, как это сделать: http://developer.android.com/resources/tutorials/notepad/notepad-ex1.html

(см. Шаг 4)

Отрывок:

  • ListView и TextView можно рассматривать как два альтернативных представления, только одно из которых будет отображаться одновременно. ListView будет использоваться, когда есть заметки, которые нужно показать, а TextView (который имеет значение по умолчанию «Нет заметок!», Определенное как строковый ресурс в res / values ​​/ strings.xml), будет отображаться, если его нет любые заметки для отображения.
  • Представление с пустым идентификатором используется автоматически, когда у ListAdapter нет данных для ListView. ListAdapter знает, как искать это имя по умолчанию. Кроме того, вы можете изменить пустое представление по умолчанию, используя setEmptyView (View) в ListView.
0 голосов
/ 17 июня 2011

Aleadam прав.Вот пример XML в поддержку его ответа:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    <ListView 
        android:id="@+id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        />
    <TextView 
        android:id="@id/android:empty" 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:textColor="@drawable/red"
        android:gravity="center_vertical|center_horizontal"
        android:textStyle="bold"
        android:text="@string/error_no_groups" 
        />
</LinearLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...