/ / Adapter listy widoków systemu Android tworzący wiersze na podstawie elementów nadrzędnych i podrzędnych - android, widok listy systemu Android, moduł tablicy urządzeń z systemem Android

Adapter listview dla systemu Android tworzący wiersze oparte na rodzicach i dzieciach - android, android-listview, android-arrayadapter

"parent": [
{
"type": "Category",
"label": "Transition",
"isButtonGroup": false,
"children": [
{
"label": "Date Of case (Est.)",
"questionType": "DateTime",
},
{
"label": "Benchmark",
"questionType": "Float",
},

@Override
public Children getItem(int position) {
.....
return Children ;
}

przypadek 1: chcę wyświetlić jedno dziecko jeden wiersz.

case2: chcę wyświetlić wszystkie dzieci w jednym rzędzie.

ponieważ moja metoda getView () jest wywoływana dla każdego dziecka, wyświetla tylko pierwszy przypadek.

Nie mogę uzyskać case2, Każda pomoc lub podpowiedź będzie mile widziana. Dzięki.

Odpowiedzi:

0 dla odpowiedzi № 1

Wewnątrz metody getView () niestandardowego adaptera, jeśli chcesz mieć jeden wiersz dla wszystkich dzieci, dodaj tę pętlę foreach:

Założenia: - allTheChildren to ArrayList, który zawierawszystkie elementy potomne rodzica, który wywołał niestandardowy adapter. - Metoda getValue () zwraca tę zawartość dziecka. - rowView = układ reprezentujący każdą linię w ListView. - textView = textView, w którym ustawiasz dzieci (jest to część układu rowView).

String theFinalStrng = "";
for (Child c : allTheChildren) {
theFinalString = theFinalString + c.getValue() + " ";
}
textView.setText(theFinalString);
return rowView;

W ten sposób, jeśli masz więcej niż jedno dziecko, iterujesz je i dołączasz do ciągu, który na końcu dodajesz do widoku tekstu, a więc w tym samym rzędzie.

Brakuje tutaj cennych informacji, więc nie mogę zasugerować dokładnie kodu, który musisz napisać. Zastąp je odpowiednimi zmiennymi i typami, które masz.