1. Speichern & Status in Ansicht wiederherstellen (Aktivität/Fragment).
Ich ziehe Spar & in View Ansicht des Zustandes der Wiederherstellung selbst (Aktivität/Fragmente)
es daher in der Verantwortung der Sicht seinen Zustand zu speichern (also auf einzelne Verantwortung -Prinzip).
Beispiel
/**
* On Save Instance State.
*
* @param outState Out State.
*/
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString(STATE_KEY_USERNAME, getUserNameFieldValue());
outState.putString(STATE_KEY_PASSWORD, getPasswordFieldValue());
outState.putBoolean(STATE_KEY_REMEMBER_ME, getRememberMeFieldValue());
}
/**
* On Restore Instance State.
*
* @param savedInstanceState Saved Instance State.
*/
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
if (savedInstanceState != null) {
String userName = savedInstanceState.getString(STATE_KEY_USERNAME, "");
String password = savedInstanceState.getString(STATE_KEY_PASSWORD, "");
boolean rememberMe = savedInstanceState.getBoolean(STATE_KEY_REMEMBER_ME, false);
userNameEditText.setText(userName);
passwordEditText.setText(password);
rememberMeCheckBox.setChecked(rememberMe);
}
}
2. Speichern & wiederherstellen Presenter Staat in Presenter
Wenn Sie Zustand des Moderators speichern müssen Sie dann in Präsentator es.
Mein Basis Moderator sieht diese
/**
* On Create View.
* <p>
* 1. Gets called from view's onCreate method.
*
* @param view View.
* @param savedInstanceState Saved Instance State.
*/
void onCreateView(final View view, final Bundle savedInstanceState);
/**
* On Attach View.
* <p>
* 1. Gets called from view's onStart method.
*/
void onAttachView();
/**
* On Detach View.
* <p>
* 1. Gets called from view's onStop method.
*/
void onDetachView();
/**
* On Save State.
* <p>
* 1. Gets called before view is destroyed to save the state of the presenter.
*
* @param outState Bundle in which to place your saved state.
*/
void onSaveState(final Bundle outState);
/**
* On Destroy View.
* <p>
* 1. Gets called from view's onDestroy method.
*/
void onDestroyView();
Ich verstehe, aber mein Beispiel ist eine Form der Schöpfung. Also mein Model könnte ein Post mit Kategorien sein. Das Problem ist, dass ich das Post-Objekt nie speichern werde. Das Ziel besteht darin, ein Post-Objekt zu erstellen und es für eine Web-Anfrage zu verwenden. Also, ich denke, die einzige Möglichkeit, dies zu tun, ist, in der Ansicht zu speichern und dann den Zustand der Ansicht wiederherzustellen. Liege ich falsch? @ Mmark –
@ FábioCarballo Wenn ich das Ziel von MVP nicht missverstand, müssen Sie das Post-Objekt nicht speichern (mit "Speichern" nehme ich an, Sie meinen etwas wie eine lokale db oder SharedPreferences). Der Moderator + das Modell sind diejenigen, die über die Änderungen des Ansichtszustands (im Speicher) bestehen sollen – mmark