Gewusst wie: zurücksetzen der ListView mit den ArrayAdapter nach dem abrufen der Daten
Ich bin mit einem ListAdapter füllen eines ListView-so:
static final String[] PROBLEMS = new String[] {"one", "two", "three" };
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this, R.layout.my_problems, PROBLEMS));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
und nach, dass ich einen remote-Aufruf zu meinem server um mehr Daten für die Liste mit einem AsyncTask nennen, und Wann bekomme ich die Daten wieder vom server ich weiß nicht, wie zu füllen und zurücksetzen der ListView. Bisher habe ich so etwas wie dieses:
@Override
protected void onPostExecute(String result)
{
//Unwrap the stuff from the JSON string
String problem_title = null;
String problem_id = null;
try
{
JSONArray obj = new JSONArray(result);
JSONObject o = obj.getJSONObject(0);
Log.d( "Title: " , "" + o.getString("problem_title") );
Log.d( "id: " , "" + o.getString("problem_id") );
problem_title = o.getString("problem_title");
problem_id = o.getString("problem_id");
}
catch ( Exception e )
{
}
//Now not sure what to do :)
//How do I reset the list that I had set up above?
}
Kann ich das Ergebnis in einem entsprechend strukturierten Daten zum zurücksetzen der Liste, aber nicht sicher, wie das geschehen ist. Kann mir bitte jemand helfen? 🙂
InformationsquelleAutor GeekedOut | 2012-03-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich benutze es auf diese Weise,
dann
dann das listview-Inhalt ändert sich bei der Zeit, die Sie diese Funktion ausführen
ah ok, kompilieren! Danke!
Kein problem, viel Glück
InformationsquelleAutor Hesham Saeed
Brauchen Sie nicht neu zu initialisieren Sie den adapter, wenn Sie nur wollen, um die Daten zu ändern gesetzt. Versuchen Sie den folgenden code -
danach können Sie bei Bedarf Benachrichtigen die änderung der adapter auch, obwohl es sollte nicht notwendig sein.
wenn Sie sich gezielt API level 11 oder höher verwenden, können Sie addAll () - Methode auf adapter. Da ist es effizienter.
InformationsquelleAutor noob
ist eine gute option, um dies zu tun, aber manchmal, die nicht arbeiten, als wir brauchen. In diesem Fall können Sie setadapter wieder und deine listview aktualisiert. Aber dies ist nicht eine gute option zu tun, weil es genrates ganze listview wieder so dies dazu führen, dass Leistung sehr nach unten. Und Ihre app langsam.
InformationsquelleAutor Never Quit