Ich habe 2 ArrayList
& möchte eine von ihnen basierend auf Bedingungen festlegen. Es wird jedoch nicht festgelegt.Set 2 verschiedene Liste zu Spinner basierend auf Bedingung
Inside onCreate()
Ich definierte ArrayAdapter
& eine der Listen basierend auf Bedingung. Das erste Mal funktioniert es aber das nächste Mal, wenn ich Listen aktualisieren & versuchen, setzt wieder mit notifyDataSetChanged()
dann nicht funktioniert & Spinner zeigt leere Liste in DD.
Pseudo-Code ist unter
list1, list2;
flag = True/False;
arraydapter(context, res, flag ? list1 : list2);
refreshList() {
if (flag)
list1.clear();
else
list2.clear();
addDataInList();
}
addDataInList() {
if (flag)
list1.add(something);
else
list2.add(something);
adapter.notifyDataSetChanged();
}
Nope von notifyDataSetChanged Methode, die Sie nicht Liste der Daten ändern können, diese Methode verwendet wird, wenn es in Ihrer aktuellen Liste gibt es jede Aktualisierung, aber wenn man total Liste ändern Sie dann müssen Sie erneut als Adapter zu Listview, oder Sie können nur nur für die Liste verwenden und aktualisieren Sie es und rufen Sie Notify-Methode – Vickyexpert
Sie sollten Ihren echten Code, nicht Ihren Pseudo-Code zeigen. Aber, eine Frage, die ich bereits basierend auf dem Pseudocode habe: wann ist "arraydapter (context, res, flag? List1: list2);" hingerichtet? Einmal in der onCreate()? Wenn dies der Fall ist, ist der Adapter leer, wenn er nicht markiert ist. – Niels
haben Sie versucht, zwei verschiedene Adapter zu erstellen und dann den Adapter basierend auf Ihrem Zustand zu ändern? – hehe