Как должны быть организованы данные для SimpleExpandableListAdapter

Я пытаюсь создать ExpandableListView с помощью SimpleExpandableListAdapter (я знаю, что сам я могу расширить сам новый адаптер, но я хочу попробовать simpleExapndableListAdapter).

Теперь я сталкиваюсь с проблемами, когда пытаюсь создать новый экземпляр SimpleExpandableListAdapter .

Событие Я прочитал ссылки , я не совсем уверен, что означает параметры, особенно groupData и childData .

Хотя я знаю, что мне нужно создать список Map и список list of Map , но какие данные следует поместить туда? Как их организовать?

Например, это данные, которые я хочу отобразить, как их организовать?

 ++Development Team John Bill ++Data Process Team Alice David 

Кстати, означает ли это, что мне нужно создать два макета для группы и вид ребенка?

У меня есть googled и читать учебник снова и снова, но я не могу понять это.

Надеюсь, кто-то может объяснить это.

Вот простой образец, который вы хотели, он очистит все ваши сомнения.

 import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.ExpandableListActivity; import android.os.Bundle; import android.widget.ExpandableListAdapter; import android.widget.SimpleExpandableListAdapter; public class SimpleExpandableListExampleActivity extends ExpandableListActivity { private static final String NAME = "NAME"; private ExpandableListAdapter mAdapter; private String group[] = {"Development" , "Data Process Team"}; private String[][] child = { { "John", "Bill" }, { "Alice", "David" } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); List<Map<String, String>> groupData = new ArrayList<Map<String, String>>(); List<List<Map<String, String>>> childData = new ArrayList<List<Map<String, String>>>(); for (int i = 0; i < group.length; i++) { Map<String, String> curGroupMap = new HashMap<String, String>(); groupData.add(curGroupMap); curGroupMap.put(NAME, group[i]); List<Map<String, String>> children = new ArrayList<Map<String, String>>(); for (int j = 0; j < child[i].length; j++) { Map<String, String> curChildMap = new HashMap<String, String>(); children.add(curChildMap); curChildMap.put(NAME, child[i][j]); } childData.add(children); } // Set up our adapter mAdapter = new SimpleExpandableListAdapter(this, groupData, android.R.layout.simple_expandable_list_item_1, new String[] { NAME }, new int[] { android.R.id.text1 }, childData, android.R.layout.simple_expandable_list_item_2, new String[] { NAME }, new int[] { android.R.id.text1 }); setListAdapter(mAdapter); } } 

Все, что вам нужно сделать, это

  • Создайте проект Android с SimpleExpandableListExampleActivity качестве основной деятельности.
  • Скопируйте-вставьте код, указанный в этом действии.
  • Вот оно .. Запустите свой код …

Надеюсь это поможет…

Вам понадобятся два списка или массивы.

Группа родителей (команда разработчиков и данных)

Родительский список является обычным, вам нужно будет добавить всех родителей, то есть элементов верхнего уровня.

Childrean

Основное различие между родительским и дочерним списками состоит в том, что список детей – это список списков.

Например, если вам нужны дети родителя, вы сделаете что-то вроде этого

 children.get(parentPosition) 

И если вам нужен конкретный ребенок

 children.get(parentPosition).get(childPosition) 

Здесь вы можете найти пример, используя BaseExpandableListAdapter

Существует буквально столько примеров для вашего требования!

В любом случае, вы можете захотеть заглянуть в этот блог, если у вас его уже нет.

http://www.coderzheaven.com/2011/04/10/expandable-listview-in-android-using-simpleexpandablelistadapter-a-simple-example/

«Означает ли это, что мне нужно создать два макета для группы и детское представление?»

Да конечно! , Я имею в виду, что вы можете не создавать макеты, но опять же это ваш выбор, и это связано не только с ExpandableList

В идеале GroupList будет содержать список команд «Список команд» = {«Команда разработчиков», «Команда обработки данных»} (Это будет использоваться преимущественно для целей отображения, например, для расчета высоты списка и т. Д.).

В ChildList в идеале должен содержаться список списков (скорее всего, Hashmap of Lists)

Hashmap> =

Команда разработчиков: List = {«John», «Bill»} Команда обработки данных: List = {«John», «Bill»}

Intereting Posts