Наличие 2 пустых компонентов макета, когда список пуст

#android #listview

#Android #listview

Вопрос:

Когда мой Listview не содержит элементов, я установил 2 пустых layoutcomponent в моем XML. Возможно ли обратиться к любому из этих компонентов в коде? Поскольку кнопка должна находиться под TextView, но когда она не в XML, приложение вылетает, потому что сначала находит TextView.

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

     <ListView android:id="@ id/android:list" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:layout_weight="1"
    android:drawSelectorOnTop="false" />
    <Button 
    android:id="@android:id/empty"
    android:layout_margin="5dip"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:text="Toon dichtstbijzijnde kantoor" 
    android:gravity="center"/>  

    <TextView android:layout_height="wrap_content" 
    android:id="@ id/android:empty"
    android:layout_width="fill_parent" 
    android:text="Er zijn geen jobs die voldoen aan uw criteria..."
    android:gravity="center"/>
  

Обновить:
при следующем коде он работает отлично, но кнопка не отображается…

     <ListView android:id="@ id/android:list" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:layout_weight="1"
    android:drawSelectorOnTop="false" />

    <LinearLayout android:id="@android:id/empty"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"
    android:gravity="center">

    <TextView android:layout_height="wrap_content" 
    android:id="@ id/TestText"
    android:layout_width="fill_parent" 
    android:text="Er zijn geen jobs die voldoen aan uw criteria..."
    android:gravity="center"/>

    <Button 
    android:id="@ id/Test"
    android:layout_margin="5dip"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:text="Toon dichtstbijzijnde kantoor" 
    /> 
    </LinearLayout> 
  

Ответ №1:

Просто поместите кнопку и TextView в LinearLayout

 <LinearLayout android:id="@android:id/empty">
    <Button />
    <TextView />
</LinearLayout>
  

Комментарии:

1. Я привел это в качестве примера, вы должны заполнить свойства макета, исключение говорит вам все — java.lang.RuntimeException: строка двоичного XML-файла # 46: Вы должны указать атрибут layout_width.

2. Это было немного глупо с моей стороны. Спасибо. Однако теперь я заменил свою кнопку под TextView и передал ему android:id="@ id/Test" Она не отображается. Отображается только TextView (также имеет другой идентификатор как пустой).

3. не помещайте никакой другой элемент с идентификатором «@android: id / empty», просто макет

4. я неправильно понял ваши последние слова о пустом идентификаторе, в любом случае, попробуйте установить android:orientation =»vertical» на макете, потому что я думаю, что это помещает кнопку справа от textview, и текстовое представление заполняет экран из-за его layout_width =»fill_parent» (или замените это на wrap_content и оставьте ориентацию неизменной)