Gewusst wie: aktualisieren Sie das fragment, nachdem die Aktivität beendet in android?
Arbeite ich an der user-login-Prozedur
Zunächst, den Benutzer, geben Sie ein fragment ,
In fragment er zunächst überprüfen, ob der Benutzer angemeldet hat , wenn das stimmt, dann Blasen Sie die login-ed-screen, sonst wird die login-form aufgeblasen wird.
Einfachen code, ist wie diese
if (prefs_user exist) {
v = inflater.inflate(R.layout.fragment_logined, container, false);
logout.setOnClickListener(new View.OnClickListener() {
editor.remove(prefs_user).commit();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.detach(frag).attach(frag).commit();
});
} else {
v = inflater.inflate(R.layout.fragment_login, container, false);
login.setOnClickListener(new View.OnClickListener() {
editor.put(prefs_user, true).commit();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.detach(frag).attach(frag).commit();
});
reg.setOnClickListener(new View.OnClickListener() {
intent to start register activity
});
}
Dann, für die register-Aktivität
if(reg_success) {
app.editor.putString("prefs_user",true).commit();
finish();
}
Bisher funktioniert es für login /logout, das problem ist , nach registrieren Sie sich in der neuen Tätigkeit, das fragment wird nicht aktualisiert, z.B. es sollte zeigen, logout Bildschirm, nachdem der Benutzer den Erfolg registriert.
Gewusst wie: aktualisieren Sie das fragment nach Aktivität beenden? Dank
- die Aktivität, die Sie vollenden
- registrieren Aktivität
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für die Lösung, die Sie starten können, registrieren Sie die Aktivität wie folgt :
Und wenn Sie fertig sind, Ihre Aktivität sollten Sie setResult wie unten :
Nun in Ihrem fragment, erhalten Sie Fall der Beendigung Ihrer Tätigkeit durch überschreiben onActivityResult() in das fragment.
Das ist es.
Hoffe es wird Euch helfen.
Ihre fragments zerstört ist, wenn Sie anrufen
finish()
auf die Aktivität, da Sie Ihre fragment-Lebenszyklus gebunden ist, um Ihre Aktivität-Lebenszyklus.Unter Berücksichtigung aller android-version verwenden: