Android: как смоделировать кнопку назад - PullRequest
6 голосов
/ 01 августа 2011

В настоящее время моя деятельность позволяет пользователям заполнять определенные данные. Включая счетчик и т. Д. Когда пользователь нажимает «Следующая», система переходит на другой экран. Когда я нажимаю кнопку «Назад» на телефоне, предыдущая активность загружается и заполненные данные становятся доступными.

Мое требование просит дать мягкую кнопку "Назад" в пользовательском интерфейсе. Когда пользователь щелкает его, он возвращается к предыдущему экрану, но заполненные данные недоступны.

Есть ли способ имитировать кнопку возврата на событии onclick софт-кнопки?

Intent back = new Intent(ImagePreviewActivity.this, sendingpage.class);
startActivity(back);

Заранее спасибо за ваше время.

Ответы [ 5 ]

14 голосов
/ 01 августа 2011

Вам нужно будет просто вызвать метод Activity finish(), когда пользователь нажмет программную кнопку возврата.

РЕДАКТИРОВАТЬ: просто позвольте вашему Activity реализовать OnClickListener и затем в коде

          myBackButton.setOnClickListener(this);
   ....

   public void onClick(View v) {
       if(v.getId()==R.id.YourBackButton){
           finish();
       }
   }

EDIT2 : вы также можете позвонить onBackPressed() с вашего Activity.

3 голосов
/ 01 августа 2011

Если вы используете «Деятельности» для отображения другого экрана, просто завершите упражнение с некоторым результатом, основанным на щелчке кнопки, и вы можете передать некоторое значение «Результат деятельности» обратно, которое затем можно будет обработать в onActivityResult предыдущего действия.

Добавление некоторого псевдокода.Предполагая, что у вас есть две Активности A и B, и вы идете из A -> B, а затем из B -> A

в Деятельности A

 startActivityforResult(new Intent(A.this, B.class), 1234);

 onActivityResult(......) {
    if (1234 == requestCode) {
        switch (resultCode) {
             /* Do your processing here like clear up old values and so on */
        }
    }
 }

в Деятельности B

onClick() {

  if (v == backBtn) {
           Intent resultIntent = new Intent();
    setResult(Activity.RESULT_OK, resultIntent);
    finish();
 }
}
1 голос
/ 14 августа 2014

Все решения в этом посте слишком сложны. Самое простое на этом посту:

Android - кнопка имитации возврата

Это последнее решение на посту:

this.onBackPressed ();

1011 * OR *

getActivity () onBackPressed ();.

Независимо от того, где вы звоните.

1 голос
/ 01 августа 2011

Как было сказано ранее, просто завершите свою деятельность:

myButton.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        finish();
    }
});
0 голосов
/ 01 августа 2011

В вашу программную кнопку Назад на событии onClick напишите

Intent _intent = new Intent(PresentActivity.this,PreviousActivity.class);
startActivity(_intent);
...