"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 № 1Wewną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.