1. Lưu & Khôi phục Chế độ xem trạng thái xem (Hoạt động/phân đoạn).
Tôi thích tiết kiệm & khôi phục lại trạng thái xem tại Xem bản thân (Hoạt động/Fragment)
Do đó nó là trách nhiệm của xem để tiết kiệm nước (Do đó tuân thủ nguyên tắc trách nhiệm duy nhất).
Ví dụ
/**
* 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. Lưu & Restore Presenter Nhà nước Presenter
Nếu bạn cần phải lưu bất cứ tiểu bang của người dẫn chương trình sau đó làm điều đó trong người dẫn chương trình.
người dẫn chương trình cơ sở của tôi sẽ xem xét này
/**
* 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();
Tôi hiểu, nhưng ví dụ của tôi là một hình thức sáng tạo. Vì vậy, mô hình của tôi có thể là Bài đăng có Danh mục. Vấn đề là tôi không bao giờ lưu đối tượng bài viết. Mục tiêu là tạo một đối tượng bài đăng và sử dụng nó để tạo một yêu cầu web. Vì vậy, tôi đoán cách duy nhất tôi làm là lưu trữ trong chế độ xem và sau đó tạo lại trạng thái của chế độ xem. Liệu tôi có sai? @mmark –
@ FábioCarballo nếu tôi không hiểu sai mục tiêu của MVP, bạn sẽ không cần phải lưu đối tượng Bài đăng (bằng cách "lưu" tôi giả sử bạn có ý nghĩa giống như một db cục bộ hoặc SharedPreferences). Người trình bày + mô hình là người nên duy trì (trong bộ nhớ) trên các thay đổi trạng thái xem – mmark