EDIT: после добавления onPause()
и onResume()
приложение перестает работать; однако экземпляр все еще не сохраняется, и я теряю текст, который я помещаю внутри EditText
. Я предполагаю, что я должен сохранить экземпляр, используя onPause()
, onStop()
и вспомнить его, используя onResume()
(или, может быть, используя это иonSaveInstanceState(), onRestoreInstanceState()
) - Я читаю о том, как использовать эти три метода сейчас, и я бы оцените любые указатели.Приложение Android останавливается после сохраненияInstanceState реализовано
В настоящее время я пишу простое приложение для Android только с четырьмя (возможно, пятью) действиями. Функция приложения заключается в предоставлении помощи и консультаций студентам в университете, где они должны добавлять сами курсы (которые появляются на странице activity_main_page
в виде кнопок) - при нажатии кнопки она переходит на страницу консультаций.
В настоящее время я изучаю курс, добавив страницу: activity_add_course
. Я пытаюсь добавить способ сохранить состояние текста EditText
(здесь пользователь добавляет имя курса), когда действие приостанавливается/останавливается (например, когда пользователь нажимает кнопку «Назад» или кнопку «домой») и напомнить, когда пользователь вернется на страницу.
Приложение работает нормально (с использованием фиктивных намерений для подключения к действию - я не добавил базу данных SQL, чтобы фактически заставить приложение работать), прежде чем я попытался добавить сохранение состояния экземпляра в приложение. Теперь, когда я добавил сохранение состояния и восстановление экземпляра, приложение перестает работать, когда я нажимаю кнопку «Назад», и я понятия не имею, почему? или как его исправить? - Эта проблема решена. Благодаря @peresisUser
Это код для кнопки возврата
btBk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent New = new Intent(AddCourse.this, MainPage.class);
startActivity(New);
}
});
}
И это коды, которые я использую, например, сохранение и восстановление.
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
//Save instance state
savedInstanceState.putString("edC1", edCourse1.getText()+"");
savedInstanceState.putString("edC2", edCourse2.getText()+"");
savedInstanceState.putString("edC3", edCourse3.getText()+"");
savedInstanceState.putString("edC4", edCourse4.getText()+"");
}
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
//Restore instance state
String edC1 = savedInstanceState.getString("edC1");
edCourse1.setText(edC1+"");
String edC2 = savedInstanceState.getString("edC2");
edCourse2.setText(edC2+"");
String edC3 = savedInstanceState.getString("edC3");
edCourse3.setText(edC3+"");
String edC4 = savedInstanceState.getString("edC4");
edCourse4.setText(edC4+"");
}
edCourse1-4
все разные EditTexts
.
Из моего понимания, onSaveInstanceState()
сохранит edC1
как текст из edCourse1.getText()+""
и так далее, то onRestoreInstanceState()
восстановит String
внутри edC1
к edCourse1
и так далее.
У меня возникли проблемы с этим, я понятия не имею, как решить следующую проблему, которая должна сохранить состояние кнопок на странице activity_main_page
. Здесь у меня было бы 10 кнопок, которые начинаются как невидимые и безымянные, где activity_add_course
добавит имя к кнопке и сделает ее видимой. Я предполагаю, что проблема, с которой я столкнулся, заключается в следующем: все кнопки станут невидимыми при перезапуске приложения.
Вы можете опубликовать трассировку стека от сбоя. –