Ich erhalte Daten, um meine ListView mit AsyncTask zu füllen. Ich ändere Adapter für ListView in onPostExecute()
protected void onPostExecute(ArrayList<JSONObject> result) {
MarkersListAdapter adapter = (MarkersListAdapter) this.markersList.getAdapter();
adapter.clear();
adapter.addAll(result);
this.markersList.setAdapter(adapter);
dann möchte ich einige Änderungen an den neuen Ansichten vornehmen, aber ListView wird nach dem Zurückgeben des Programms mit neuen Ansichten gefüllt onPostExecute()
. Ich möchte Android zwingen, meine Listview zu füllen, wenn ich in. Bin onPostExecute()
. Ich habe es versucht notifyDatasetChanged()
für Adapter und invalidate()
für Listview, aber keiner hat funktioniert.
Antworten:
0 für die Antwort № 1Es ist mir gelungen, die Liste zu ändern und die ListView ungültig zu machen.
Stellen Sie zuerst den Adapter auf listView ein.
listView.setAdapter(new MyListAdapter(getActivity(), R.layout.list_cell_layout, objList));
Wenn Sie die Liste aktualisieren müssen, nehmen Sie einfach Änderungen an objList vor und rufen Sie invalidate für listView auf:
objList.remove(1);
listView.invalidateViews();
Es hat für mich funktioniert.