Ich habe ein Fragment in meiner Aktionsleiste und wenn der Benutzer auf die Fragment-Schaltfläche klickt, sollte die Seite automatisch aktualisiert/aktualisiert werden, wenn darin Inhalte enthalten sind. Das Problem, mit dem ich konfrontiert bin, ist, dass das Fragment beim ersten Mal nicht automatisch aktualisiert wird, sondern aktualisiert und aktualisiert wird, wenn ich es das zweite Mal drücke.Fragment aktualisiert sich nicht automatisch beim Klicken auf
Dies ist der Fluss:
1 Wählen Sie Fragment -> nicht aktualisiert/Refresh -> zurück gehen und ein weiteres Fragment 2 von Aktionsleiste wählen -> wählen Fragment 1 wieder -> Aktualisiert das UI von Fragment 1 .
Ich rufe das Fragment 1 von MainActivity in der OnPostExecute einer Async-Aufgabe.
MainActivity,
private final FragmentOne f1 = new FragmentOne();
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
f1.updateUI();
}
Ich habe dieses Stück Code in meiner Fragment-Klasse.
// Updates the fragment-1 UI
public void updateUI() {
if (isAdded()) {
String currentDatabaseName = null;
hideAllTables();
hideWarningLabelsAndHeaders();
progressBarIndicator.setVisibility(View.VISIBLE);
if (null != getUserIdentifier()) {
currentDatabaseName = Utils.buildUserDataFromFli(getUserIdentifier());
}
if (null != currentDatabaseName) {
shopData = new ShopDao(ShopApplication.getLoggedInUser(), Utils.getDatabaseIndexMap());
transcationData = new TranscationDao(ShopApplication.getLoggedInUser(), Utils.getDatabaseIndexMap());
}
configureUserDependentFetchers(getUserIdentifier());
}
}
wo Sie asyntask nennen? – sasikumar
Ist Ihr 'isAdded' Boolean beim ersten Aufruf aktualisiert? –
Überprüfen Sie, ob der Boolesche Wert korrekt ist oder nicht, wenn das Fragment hinzugefügt wurde – sasikumar