2014-03-06 1 views
0

Я использую DrawerLayout для навигации, который включает ListView, заполненный строками, хранящимися в XML. Инициализация ListView выглядит следующим образом:Преобразование ListView с адаптером и ThemedContext в XML ListView со Styling

mDrawerListView.setAdapter(new ArrayAdapter<String>(
    getActionBar().getThemedContext(), 
    android.R.layout.simple_list_item_activated_1, 
    android.R.id.text1, 
    getResources().getStringArray(R.array.navigation_section_titles) 
)); 

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

<ListView 
    android:id="@+id/navigation_drawer" 
    android:background="#cccc" 
    android:entries="@array/navigation_section_titles" 
    android:choiceMode="singleChoice" 
    android:divider="@android:color/transparent" 
    android:dividerHeight="0dp" 
    android:layout_gravity="start" 
    android:layout_height="match_parent" 
    android:layout_width="@dimen/navigation_drawer_width" 
    tools:layout="@layout/simple_list_item_activated_1"/> 

Появление ListView не согласуется между этими двумя формами. Это требует установки адаптера с ресурсами android, как показано в первом блоке. Возможно ли установить адаптер без необходимости переопределять список строк для использования в списке? Еще лучше, можно ли определить этот стиль и список содержимого полностью в XML?

+0

Какие "две формы"? – PearsonArtPhoto

ответ

1

ListView Невозможно полностью определить в XML. Однако есть две ключевые части, которые могут быть определены в XML, плюс нижний колонтитул и заголовок, если вы так решите. Все 4 из них могут быть определены в XML, но взаимосвязь между ними должна быть определена в коде. Теоретически это можно объединить, и на самом деле это делается в ListPreferences, но стандартный контекст Android не позволяет этого.

Итак, 4 частей, которые могут быть определены в XML являются:

  1. ListView - содержит местоположение, размер, делители и фон
  2. адаптер Просмотр- показывает, что одна строка выглядит
  3. Header- Это обычай первый ряд в списке
  4. Footer- Это обычай последняя строка в списке

Все это, к лучшему или худшему, подключено во время работы. Адаптер управляет потоком между ними. Код, который у вас есть, является лучшим, что можно сделать, к сожалению, XML просто недостаточно для полного определения ListView в XML.

 Смежные вопросы

  • Нет связанных вопросов^_^