Как очистить данные от активности с помощью кнопки возврата устройства

Я создал приложение для Android, у которого есть 3 действия (A,B,C), в действии A есть 2 автозаполнения textview который выбирает данные из базы данных и кнопки после выбора данных в автозаполнении текста, пользователь нажимает кнопку, и он переходит к следующему действию, которое показывает listview,

Теперь проблема в том, когда я нажимаю кнопку возврата устройства из listview является отображением активности A с выбранными данными в автотексте, как я могу избежать выбранных данных, когда нажимаю кнопку возврата устройства.

Спасибо за помощь заранее

5 ответов

protected void onResume(){
    super.onResume();
    setContentView(R.layout.activity_main);
}

это тоже хорошо работает..

Когда вы нажмете кнопку "Назад", действие "возобновится". Итак, в вашем Activity A переопределите "onResume"... в методе onResume очистите ваши поля.

Вы должны реализовать startActivityforResut. Когда вы вернетесь к этому действию, вы сможете очистить данные.

Нет ничего с кнопкой возврата списка активности, поскольку вы пытаетесь очистить свое поле в предыдущем упражнении. Поскольку вы не завершаете предыдущее действие при создании списка действий, предыдущее действие не меняется. Поэтому, когда вы возвращаетесь из списка, вы говорите те же данные, что и раньше. чтобы сделать это, как предложил @Dave, вы могли бы выполнить очистку в методе oResume или в методе onPause. Но есть проблема. Если вы удалите свои данные в onResume или в onPause, ваши данные будут очищены по другим причинам, связанным с приостановкой или возобновлением, например, нажатием home, или для других приложений и т. Д. Таким образом, вы можете сделать любое из двух

Опция 1:

очистить данные предыдущего действия при запуске действия списка

или же

Вариант 2:

вместо startActivity вызов startActiviyForResult а также переопределить onActiviyResult метод. Таким образом, там вы можете определить, когда вы возвращаетесь из списка действий. Затем очистите данные.

Чтобы справиться с этой проблемой, я просто переопределил бы метод onBackPressed(), и там я бы очистил стек действий, так как нет логического объяснения для сохранения действий в памяти, а затем начал бы новое намерение для вашего исходного действия. Вот код.

@Override
public void onBackPressed() {

     Intent intent = new Intent(this, Activity_A.class);      //I suppose they are in same package

     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
     startActivity(intent);

}

Я надеюсь, что это помогает.

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