2014-11-05 2 views
0

В моем приложении есть много действий, если пользователь нажимает кнопку «Назад» при любом действии, он переходит в конечную активность, где есть кнопки для оценки этого приложения, обратной связи, Facebook и т. Д. Для меня возможно вернуться к предыдущему действию при нажатии кнопки с последнего действия. Также в манифесте я дал андроид: noHistory = "true" для всех видов деятельности.Android - как вернуться к предыдущей деятельности?

Для примера. если пользователь находится в состоянии «А», если он нажмет кнопку «Назад», он оттуда отправится в конечную активность, если он нажмет кнопку, он должен вернуться к активности А. аналогичным образом для других видов деятельности. Является ли это возможным?

Я, наконец, решил вернуться только к первому действию при нажатии кнопки при последнем действии, я использовал следующий код.

Button first = (Button) findViewById(R.id.first); 
    first.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      startActivity(new Intent(last.this,first.class)); 
      finish(); 

     } 
    }); 

Как я извлекал андроид: noHistory = «истина» в манифест первого действия она держать на повторение.

как остановить это. где я должен называть финиш() в первом действии

+0

его хорошая практика ответить на полученные вами ответы – Akhil

+0

извините за ответ. Любой, как я решил это. я забыл называть финиш для другого onclicklistner в действии – daas12

ответ

0

Я думаю, что вы называете finish() в MainActivity при запуске вашего FinalActivity

noHistory = "true" должен дать вам решение, но вы можете получить подобное поведение, вызвав finish() в вашем MainActivity сразу после того, как он запускает новую активность. Тем не менее, noHistory больше поддерживается в конце, потому что вы можете забыть включить вызов finish(), если позже добавить еще один вызов startActivity() в свой MainActivity.

0

Вы можете только начать заключительную операцию поверх A-операции, а затем просто вызвать в ней финиш().

Пример:

Пользователь в деятельности «А», то он нажимает на кнопку Назад (я предполагаю, что вы перекрываться в onBackPressed метод). Там вы начинаете окончательное действие, и если пользователь нажимает кнопку, вы просто вызываете финиш(), и пользователь возвращается к активности «A».

+0

Спасибо за вашу помощь – daas12

0

От Android documentaion

андроида: noHistory ли не деятельность должна быть удалена из стека деятельности и закончил (его конец() метод, который называется), когда пользователь переходит от него и он больше не отображается на экране - «true» , если он должен быть закончен, и «false», если нет. Значение по умолчанию: "false". Значение «истина» означает, что действие не оставит исторической трассы. Он не останется в стеке действий для задачи , поэтому пользователь не сможет вернуться к нему.

Как уже упоминался noHistory тега, нет назад стек поддерживается андроид & деятельности не получает отделку, как только вы оставите их, чтобы начать свою окончательной активность

Одно решения может быть, чтобы отправить пусковую деятельность имя при запуске конечной деятельности. Используя эту информацию, вы можете запускать деятельность по запуску, когда вам это нужно.

например

Intent it = new Intent(this,FinalActivity.class); 
it.putExtra("launched_from",this.getClass().getSimpleName()); 
startActivity(it); 

Вы можете получить reteive его в FinalActivity как этот

String launched_from= getIntent().getStringExtra("launched_from"); 

Теперь вы знаете, от деятельности которых он получил запущен.

Смежные вопросы