У меня есть форму. Здесь пользователь заполняет детали, такие как имя события, описание, местоположение и т. Д. Чтобы выбрать местоположение, я установил кнопку. Когда я нажимаю на кнопку, меня переводят на другую страницу/намерение. Я выбираю местоположение оттуда, и данные о местоположении передаются обратно в исходное намерение правильно. Но дело в том, что данные в других областях, таких как событие, описание и т. Д., Что пользователи заполнены, теряются. Я отправил this вопрос и попробовал их. Я упомянул this тоже и попытался использовать onSaveInstanceState
так:onSaveInstanceState() не сохраняет данные с целью
private static final String ENAME = "ENAME";
private static final String DESC = "DESC";
private static final String SDATE = "SDATE";
private static final String EDATE = "EDATE";
private static final String STIME = "STIME";
private static final String ETIME = "ETIME";
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
final String name = etename.getText().toString();
savedInstanceState.putString(ENAME, name);
final String des = etdes.getText().toString();
savedInstanceState.putString(DESC, des);
final String sdt = StartDate.getText().toString();
savedInstanceState.putString(SDATE, sdt);
final String edt = EndDate.getText().toString();
savedInstanceState.putString(EDATE, edt);
final String stm = StartTime.getText().toString();
savedInstanceState.putString(STIME, stm);
final String etm = EndTime.getText().toString();
savedInstanceState.putString(ETIME, etm);
// Put (save) other values into the outState bundle...
super.onSaveInstanceState(savedInstanceState);
}
Я имею эту функцию перед onCreate()
; И вот мой onCreate();
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.eventcreaten);
etename = (EditText) findViewById(R.id.etename);
etdes = (EditText) findViewById(R.id.etdes);
StartDate = (EditText) findViewById(R.id.etstartdate1);
EndDate = (EditText) findViewById(R.id.etenddate1);
btnCreateEvent = (Button) findViewById(R.id.btncreate);
tvd2 = (TextView) findViewById (R.id.tvd2);
tved2 = (TextView) findViewById (R.id.tved2);
tvg = (TextView) findViewById (R.id.tvg);
StartTime = (EditText) findViewById (R.id.etstartt1);
EndTime = (EditText) findViewById (R.id.etendt1);
if (savedInstanceState != null) {
final String name = savedInstanceState.getString(ENAME, "");
etename.setText(name);
final String des = savedInstanceState.getString(DESC, "");
etdes.setText(des);
final String sdt = savedInstanceState.getString(SDATE, "");
StartDate.setText(sdt);
final String edt = savedInstanceState.getString(EDATE, "");
EndDate.setText(edt);
final String stm = savedInstanceState.getString(STIME, "");
StartTime.setText(stm);
final String etm = savedInstanceState.getString(ETIME, "");
EndTime.setText(etm);
} else {
// No saved values to restore
}
И это не работает. Может кто-нибудь указать, почему?
Является ли ваша деятельность расширением класса деятельности непосредственно или существует цепочка? – Andrey
@ ruan65 Да, он расширяет активность –
Вы уверены, что 'onCreate()' получает вызов, когда вы возвращаетесь из другого действия? Эта операция не может быть уничтожена, и в этом случае 'onCreate()' не будет вызываться снова. –