2012-03-01 3 views
3

Я стараюсь код ниже, чтобы вызвать другую активность при нажатии на кнопку возврата:Нажмите кнопку назад на другой вид деятельности

@Override 
public boolean onKeyUp(int keyCode, KeyEvent msg) { 
    switch(keyCode) { 
     case(KeyEvent.KEYCODE_BACK): 
     Intent intent = new Intent(AActivity.this, BActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     Window w = NASGroup.group.getLocalActivityManager().startActivity("BActivity", intent); 
     View view = w.getDecorView(); 
     MyGroup.group.setContentView(view); 
     return true; 
    } 
    return false; 
} 

Но когда я нажимаю кнопку назад, то выйти из приложения. Я вижу логарифм, он не запускает функцию onKeyUp и не выводит никаких сообщений. Тот же код в onKeyUp, я стараюсь под кодом на кнопку в макете, и он работает.

cancel.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Intent intent = new Intent(AActivity.this, BActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     Window w = NASGroup.group.getLocalActivityManager().startActivity("BActivity", intent); 
     View view = w.getDecorView(); 
     MyGroup.group.setContentView(view); 
    } 
}); 

Как его изменить?

ответ

13

Для обработки назад нажмите нужно переопределить Onbackpress метод.

@Override 
public void onBackPressed() { 

    finish(); 
    Intent intent = new Intent(Myactivity.this, other.class); 
    startActivity(intent); 
} 
2

Попробуйте переопределение метода, активность в onBackPressed()

из документации: onBackPressed

2

Попробуйте, как это ...

@Override 
    public void onBackPressed() { 
    Intent BackpressedIntent = new Intent(); 
    BackpressedIntent .setClass(getApplicationContext(),TargetActivity.class); 
    BackpressedIntent .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(BackpressedIntent); 
    finish(); 
} 
1

Для задней кнопки вы должны переопределить OnBackPressed() в вашей деятельности, как

@Override 
    public void onBackPressed() { 
     Intent intent=new Intent(currentclass.this,nextActivity.class); 
     startActivity(intent); 
     finish(); 


} 

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

+1

пожалуйста, не повторяйте ответы, если ваши ответы похожи на предыдущие – Rakshi

1

Если вы находитесь в деятельности вы можете использовать onBackPressed который является встроенным методом для обработки обратно нажатие клавиши.

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