1. & सहेजें राज्य देखें (गतिविधि/टुकड़ा) में पुनर्स्थापित करें।
मैं & ही (गतिविधि/टुकड़ा) देखें में दृश्य के राज्य को बहाल करने की बचत पसंद करते हैं
इसलिए यह देखने की जिम्मेदारी अपने राज्य को बचाने के लिए (इसलिए एकल जिम्मेदारी सिद्धांत का पालन करना)।
उदाहरण
/**
* 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. सहेजें & प्रस्तुतकर्ता
में प्रस्तुतकर्ता राज्य पुनर्स्थापित आप प्रस्तोता के किसी भी राज्य को बचाने के लिए तो यह प्रस्तोता में क्या जरूरत है।
मेरे बेस प्रस्तोता हो सकता है कि इस
/**
* 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();
मैं समझता हूं, लेकिन मेरा उदाहरण सृजन का एक रूप है। तो मेरा मॉडल श्रेणियों के साथ एक पोस्ट हो सकता है। समस्या यह है कि मैं पोस्ट ऑब्जेक्ट को कभी भी सहेजता नहीं हूं। लक्ष्य एक पोस्ट ऑब्जेक्ट बनाना और वेब अनुरोध करने के लिए इसका उपयोग करना है। तो, मुझे लगता है कि मुझे ऐसा करने का एकमात्र तरीका दृश्य में स्टोर करना है और फिर दृश्य की स्थिति को फिर से बनाना है। क्या मै गलत हु? @mmark –
@ FábioCarballo अगर मैं एमवीपी के लक्ष्य को गलत नहीं समझता, तो आपको पोस्ट ऑब्जेक्ट को सहेजने की आवश्यकता नहीं होगी ("सहेजें" से मुझे लगता है कि आपका मतलब स्थानीय डीबी या साझा किए गए संदर्भों जैसा है)। प्रेजेंटर + मॉडल वह है जो दृश्य परिवर्तन में पूरे (स्मृति में) जारी रखना चाहिए – mmark