按后退按钮到另一个活动
问题描述:
我试试下面的代码来调用另一个活动,同时按后退按钮:按后退按钮到另一个活动
@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;
}
但是,当我按下返回按钮,它走出的应用程式。 我看到logcat,它不运行功能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);
}
});
我该如何修改它?
答
要处理回按你必须重写Onbackpress方法。
@Override
public void onBackPressed() {
finish();
Intent intent = new Intent(Myactivity.this, other.class);
startActivity(intent);
}
答
尝试像这样...
@Override
public void onBackPressed() {
Intent BackpressedIntent = new Intent();
BackpressedIntent .setClass(getApplicationContext(),TargetActivity.class);
BackpressedIntent .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(BackpressedIntent);
finish();
}
答
对于后退按钮,你有你的活动覆盖OnBackPressed()作为
@Override
public void onBackPressed() {
Intent intent=new Intent(currentclass.this,nextActivity.class);
startActivity(intent);
finish();
}
如果你没有完成前一活动则不需要使用intent和startActivity只需调用finish();在onBackPressed中它将完成当前的活动并且之前的活动将开始。
答
如果你是活动中可以使用onBackPressed这是一个内置的方法来处理回按键。
请不要重复答案,如果你的答案看起来类似于以前 – Rakshi 2012-03-01 04:22:42