Android пустой макет списка - PullRequest
       10

Android пустой макет списка

4 голосов
/ 18 ноября 2009

Android пустой макет списка

Что бы я ни делал, я не могу отобразить пустой тег. Внутри моих вкладок у меня есть:

<LinearLayout
android:id="@+id/thisParticularTab"
android:orientation="vertical"
android:layout_width="fill_parent" 
android:layout_height="fill_parent">

<TextView android:id="@+id/LastUpdated"
android:layout_width="fill_parent" 
android:layout_height="wrap_content"
android:text="List last updated: N/A" />

<ListView 
android:id="@+id/mySpecialListView"
android:layout_width="fill_parent" 
android:layout_height="fill_parent" />

<Button id="@android:id/empty"
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:text="Click to fill the list" /></LinearLayout>

Однако, несмотря на то, что мой ListView пуст (элементы не отображаются, а таблица базы данных, из которой производится чтение, пуста), кнопка не отображается. Есть идеи?

Кроме того, когда он появится, смогу ли я сослаться на R.id.empty? Означает ли это, что у меня может быть только 1 ListView / empty на одно действие? Насколько я понимаю, «id» используется для определения определения пользовательского интерфейса; Как я могу дать ему имя, а также назначить его как пустое представление в XML? (Я бы предпочел не использовать setEmptyView ())

Ответы [ 2 ]

8 голосов
/ 18 ноября 2009

Что вы упустили, так это то, что для идентификатора кнопки также требуется префикс Android:

<Button 
   android:id="@android:id/empty"
   ... />

@android:id/empty относится к android.R.id.empty, а не R.id.empty.

Это правда, что вы должны иметь только один элемент с заданным идентификатором для каждого просмотра. Если вы создаете свой собственный элемент представления списка, у вас, естественно, одни и те же элементы (и впоследствии одни и те же идентификаторы) снова и снова, но в этих случаях вы можете получить к ним доступ с помощью myListItem.findViewById(id)

В большей степени относится к вашему сценарию: если вы обнаружите необходимость добавить еще одно представление списка, которое принимает другой пустой тег, и при этом хотите, чтобы представление списка по сути обрабатывало скрытие и отображение этого элемента, вы можете использовать функцию setEmptyView(id)

4 голосов
/ 15 июля 2010

Попробуйте:

<Button id="@id/android:empty"
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:text="Click to fill the list" />

И найти кнопку:

 Button empty = (Button) findViewById(android.R.id.empty);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...