Поддерживать состояние активности с двумя активностями

У нас есть и приложение для Android, которое содержит два вида деятельности MainActivity и PageTwo. В MainActivity у нас есть виджет EditText, настроенный на прием только ввода чисел, и кнопка, которая переходит к следующему действию с помощью Intent. На втором упражнении PageTwo у нас есть кнопка, которая возвращает пользователя в MainActivity с намерением. Когда мы вводим значение в поле EditText и совершаем переход от действия MainActivity к действию PageTwo и возвращаемое значение, по-видимому, стирается, если вы не используете кнопку возврата устройства (эмулятора). Я пытаюсь сохранить состояние активности этой переменной EditText

фрагменты кода

 EditText ETage;
 int vAGE;
 static final String V_AGE = "vAGE"; //KeyValue Pair

@Override
public void onSaveInstanceState(Bundle outState){
    outState.putInt(V_AGE,vAGE);
    super.onSaveInstanceState(outState);
}

//@Override
public void onRestoreInstanceState(Bundle savedInstanceState){
    super.onRestoreInstanceState(savedInstanceState);
    vAGE = savedInstanceState.getInt(V_AGE);
    ETage.setText(String.valueOf(vAGE));
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //if(savedInstanceState != null){
        //vAGE = savedInstanceState.getChar(V_AGE);
    //}
    setContentView(R.layout.activity_main);

  ETage = (EditText)findViewById(R.id.editTextAge); 

3 ответа

Если вы хотите вернуться к предыдущему действию, почему вы вызываете намерение? просто пиши onBackPressed(); внутри onClick

пример

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        onBackPressed();
    }
});

или если вы действительно хотите использовать намерение, вы всегда можете использовать finish(),

пример

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        Intent i = new Intent(PageTwo.this, MainActivity.class);            
        startActivity(i);
        finish();
    }
});

В PageTwo Второе занятие не возвращается MainActivity с намерением. Просто сделайте следующее при нажатии кнопки:

super.onBackPressed(); // this instead of intent to start MainActivity

Из того, что я понимаю из вашего вопроса, вы можете сделать это на второй странице:

@Override
public void onBackPressed() {
    super.onBackPressed();

Intent intent = new   Intent(SecondActivity.this,MainActivity.class);
        startActivity(intent);

}
Другие вопросы по тегам