2015-03-19 2 views
0

Я новичок в Android. У меня есть функция «Меню», в которой у меня есть ListView с 3 элементами. Когда я нажимаю на первый элемент, он открывает новую активность Activity («Play»). В этом упражнении у меня есть кнопка, которая вызывает другое действие «Результат». Я пытаюсь включить в действие «Результат» метод onBackPressed, который возвращается к активности «Меню». Вот код, но этот код просто вернуться к «Play» активность:Выход в меню с обратной кнопкой

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    finish(); 
} 

Другой код просто вернуться в «Меню» деятельности, но не закрывает деятельность «результата»

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    Intent intent = new Intent(this , Menu.class); 
    startActivity(intent); 
} 

Пожалуйста, дайте мне понять, как с этим справиться. Спасибо.

+0

Вы можете использовать 'intent.setFlags (Intent.FLAG_ACTIVITY_NO_HISTROY)', чтобы начать меню acitivty. BTW вы должны добавить тег android. – chartsai

+0

@Chatea это плохое предложение. Это нарушит стандартную навигацию и, вероятно, не то, что пользователь хочет. Есть лучшие способы сделать это. –

ответ

1

ли это:

@Override 
public void onBackPressed() { 
    Intent intent = new Intent(this , Menu.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
} 

Это очистит все действия из стека и вернуться к Menu деятельности.

+0

Какой тип 'launchMode' мне нужен при использовании' Intent.FLAG_ACTIVITY_CLEAR_TOP'? Хотя я не ОП, но мне это нужно. Благодарю. –

+1

@AnggrayudiH 'launchMode =" singleTop "' –

+0

Для этого вы можете использовать любой режим запуска. Если вы используете стандартный режим запуска, это завершит текущий экземпляр запущенной Activity, а затем создаст новый экземпляр. Если вы используете режим запуска «singleTop», то он не будет создавать новый экземпляр этой Activity, он просто вызовет 'onNewIntent()' с новым 'Intent'. –

0

Прежде всего добро пожаловать в мир андроидов. Здесь вы делаете две основные ошибки и новички. Но никаких проблем и никаких забот к тому времени, когда вы были бы хороши в этом.

Теперь давайте поговорим о вашей проблеме. вы можете добиться этого следующим образом.

Когда вы переходите из класса игры в класс результата, нажав на кнопку, вы должны закончить этот класс игры, чтобы он не находился в фоновом режиме.

Например:

 playClassBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
      Intent intent = new Intent(this , ResultActivity.class); 
      startActivity(intent); 

      } 
     }); 

и ResultActivity над оседлать onBackPressed метод, как вы закончите alread

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

  • Нет связанных вопросов^_^