Hinzufügen von dynamischen String-arrays in eine dynamische listview in android
Habe ich string-array zurück, das holt man sich aus einer externen xml-Antwort. Dieses string-array dargestellt werden können, in einem listview. Ich möchte zum Anhängen eines string-array mit den neuen xml-Daten und fügen Sie die listview-jedesmal, wenn der Benutzer erreicht das end-element des string-array in die listview. Wie kann ich das erreichen? Ich habe recherchiert, eine Menge über dieses Thema.Ich konnte kaum irgendwelche Beispiele zu diesem Zusammenhang. Jede Hilfe wird sehr geschätzt. Danke.
ArrayList<String> get_msgList =MsgHandler.getMsgsList();
String[] msgList=new String[get_msgList.size()];
msgList=get_msgList.toArray(msgList);
ArrayAdapter<String> adapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, get_msgList );
myListView.setAdapter(adapter);
Dies ist, wie ich meine string-array und fügen Sie die listview.
- Können Sie genauer zu sein mit dem, was die anderen Daten? Alle Daten aus xml-Dateien?
- ja, alle Daten werden aus xml-Dateien. Ich bin analysieren diese Daten und dann speichern Sie es in den string-arrays.
- Wie viel Daten? Scheint für mich so, es sei denn, du hast über 10.000 Werte, Sie wäre besser dran, nur laden Sie alle im Voraus.. Lesen Sie Einfach jede Datei, und fügen hinzu, dass Daten in einer ArrayList.. verwenden Sie Dann die ArrayList mit Ihrem ArrayAdapter. Sie würden sich viel mehr helfen, wenn Sie zeigte, was code, den Sie getan haben, so weit, so dass wir wissen, wie am besten, um Ihnen zu helfen.
- wenn Sie zeigen, was Sie getan haben, so weit ich kann wahrscheinlich geben Ihnen Tipps, wie meine Lösung unten verwendet werden könnte, mit dem code.. es ist schwer für mich zu helfen, speziell wenn Sie schon so allgemein.. Und ich denke, dass die Lösung, die ich gab, würde arbeiten und sehr flexibel/skalierbar.
- Ich bin den code zu addieren.
- Dieses Verfahren wird immer wieder auftreten und neue string-arrays bezogen möchte ich hinzufügen, dass das vorhandene listview.
InformationsquelleAutor Dinesh | 2012-02-25
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
-- Update, nach suchen mehr in der Dokumentation finde ich Sie noch verwenden könnte ArrayAdapter --
Also, wenn Sie schauen Sie in die Dokumentation für listview sehen Sie
und laden diejenigen, die Sie verwenden:
Ist hier das problem Sie zu bewältigen haben, herauszufinden, wenn Sie an das Ende der Liste und laden mehr Daten ohne Blockierung der Benutzeroberfläche.
Also, sparen Sie sich eine Menge Kopfschmerzen, empfehle ich die Verwendung von Commonsware Endlos-Adapter
Tun, so wie diese:
hier ist eine andere Frage, die so ähnlich aussieht wie Ihre eigenen auf hier:
Android Endlose Liste
-- Update: Wie Sie mehrere string-arrays zu einem adapter --
Es gibt mehrere Möglichkeiten, dies zu tun, der einfachste Weg wäre wahrscheinlich die Verwendung der Adapter add-Methode..
Schau mal hier: http://developer.android.com/reference/android/widget/ArrayAdapter.html
und finden Sie die Methode hinzufügen.
Derzeit haben Sie eine variable namens-adapter:
Wann immer Sie wollen, fügen Sie weitere Daten zu diesem adapter einfach anrufen:
Also, wenn Sie hatte einen anderen String[] array mit Daten, und Sie wollte hinzufügen, alles zu den aktuellen adapter verwenden, verwenden Sie einfach:
Nachdem Sie Hinzugefügt haben, werden die neuen Daten können Sie aufrufen müssen, adapter.notifyDataSetChanged aber ich bin mir nicht sicher (es kann passieren, für Sie).. ich würde versuchen Sie es zuerst ohne und zu sehen, ob alles wie erwartet funktioniert, und wenn nicht füge es hinzu.
Nun eine Sache, die Sie wahrscheinlich wollen, zu tun ist, entweder der adapter variable eine Instanzvariable der Klasse, so dass Sie können es verwenden, überall in der Klasse.
Ich Frage mich, wie viel Daten diese listview wird sich zeigen. Aus der info, die Sie gegeben haben klingt wie Sie brauchen, um zu implementieren eine onScrollListener. Es wird Ihnen erlauben, laden mehr Daten, wenn man am Ende der Liste (Wie die facebook-app). Wie die Antwort von Matt über nicht in Unordnung mit der Benutzeroberfläche laden, müssen Sie setup ein thread zum laden der Daten außerhalb Ihres ui-thread.
Wenn Sie sagen, dass das laden aus einer externen Quelle. Ist diese über das internet? Wenn also die oben genannten Informationen, sollten Sie in die richtige Richtung. Wenn durch die externe meinst du in einer anderen Klasse, du bist wahrscheinlich besser dran, laden Sie Sie alle zusammen oder speichern Sie in einer Datenbank und ausführen eines cursor zu bekommen, was man braucht.