2013-10-15 7 views
0

У меня есть ListView под названием myView, и я получаю его для отображения различных видов данных, говоря myView.setAdapter(peopleAdapter) и myView.setAdapter(animalAdapter) и обновляя ListView.Изменение вида в android

Если бы я хотел показать ExpandableListView, адаптер не является ListView, поэтому я не могу сказать myView.setAdapter(myExpListView). Я ошибаюсь, говоря, что он несовместим.

Таким образом, вместо установки адаптера для myView, чтобы отобразить развернутое представление списка, я сделал целый другой вид, как так: ExpandableListView myExpListView; и я получил набор моих данных и установить адаптер следующим образом: myExpListView.setAdapter(myExpListView) и она работает.

Моя единственная проблема/вопрос в том, что я знаю, как менять адаптеры для отображения разных данных, но как мне менять вид? Итак, как мне поменять с myView на myExpListView, не открывая другую активность?

Спасибо.

+1

Исследования фрагментов, вы будете любить их полезность. –

+0

@EvanB Я буду читать эти «фрагменты», о которых вы говорите. Какие-то особенно полезные ссылки? Помимо Google? – Ogen

+1

@harikris Быстрое решение вашей проблемы, но если вы ищете простое масштабируемое решение, вот ссылка: http://www.vogella.com/articles/AndroidFragments/article.html –

ответ

2

Стандартный способ управления видом осуществляется через этот метод видимости:

myView.setVisibility(View.VISIBLE); 
myExpListView.setVisibility(View.INVISIBLE); 

и

myExpListView.setVisibility(View.VISIBLE); 
myView.setVisibility(View.INVISIBLE); 
+0

это выглядит как невероятно простое решение. Разве это никак не отличается от использования фрагментов, как предположил EvanB? – Ogen

+0

Фрагменты очень приятные. Как всегда, есть место и время, чтобы использовать каждый инструмент - в зависимости от ваших требований. Если вам нужно всего лишь простой способ управления/переключения между двумя видами, то то, что я предложил выше, является эффективным и простым в обслуживании. –

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