Android Erfrischende Fragment Ansicht nach AsyncTask
Ich bin versucht, zu aktualisieren Liste fragment, als eine AsyncTask
in meine Tätigkeit abgeschlossen, aber ich bin nicht sicher, ob ich es bin, etwas falsch zu machen. Derzeit habe ich einen button, leitet die AsyncTask
:
search = (Button)findViewById(R.id.search);
search.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
String productname = prodname.getText().toString().trim();
if (NetworkManager.isOnline(getApplicationContext())){
//Go to Other screen
AsyncFetcher results = new AsyncFetcher(currActivity);
String _url = "http://192.168.1.3:3000/search.json?
utf8=%E2%9C%93&q="+productname;
//progressDialog = ProgressDialog.show(
// ClassifiedsActivity.this, "", "Loading...");
results.execute(_url);
} else {
//Throw some warning saying no internet
//connection was found
}
}
});
Einmal meine Ausführung beendet habe ich folgende zu instanziieren fragment innerhalb meiner Tätigkeit:
ResultFragment resultfrag = new ResultFragment();
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame, resultfrag).commit();
Aber es scheint nicht zu ersetzen meine Inhalte mit der Liste fragment.
Hier ist mein layout-Datei:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
InformationsquelleAutor user2352691 | 2013-05-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ersten Austausch ein fragment ist nichts, wie erfrischend es ist. Ja, es lädt jede Ansicht in es und die Daten als gut. Aber Sie haben, Sie beziehen sich mit Ihren neuen Daten. Also ich würde empfehlen Ihnen, die Sie zum erstellen eines refresh-Methode in Ihrem fragment und senden Sie diese Methode Ihrem aktualisierten Daten, dann Benachrichtigen Sie Ihren adapter als
dataSetChanged
.Um dies zu erreichen, du wirst erreichen müssen, um Ihre derzeit angeschlossenen fragment und rufen Sie die refresh-Methode. Sie können
findFragmentByTag
um es zu erreichen.Edit: um Zu klären bisschen mehr
Wenn Ihr
AsyncTask
erledigt ist, sollten Sie so etwas tunonPostExecute
Methode:Und in Ihrem
ResultFragment
müssen SierefreshData
Methode, die etwas wie dieses:Und Ihre Liste wird aktualisiert werden, sobald Ihre Aufgabe getan ist.
Ahh ja, es hängt natürlich, wie gehen Sie mit listView und die adapter. Ich bin froh, dass du es geschafft hast 🙂
InformationsquelleAutor yahya