2012-03-01 53 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; 
} 

但是,当我按下返回按钮,它走出的应用程式。 我看到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); 
    } 
}); 

我该如何修改它?

回答

13

要处理回按你必须重写Onbackpress方法。

@Override 
public void onBackPressed() { 

    finish(); 
    Intent intent = new Intent(Myactivity.this, other.class); 
    startActivity(intent); 
} 
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(); 


} 

如果你没有完成前一活动则不需要使用intent和startActivity只需调用finish();在onBackPressed中它将完成当前的活动并且之前的活动将开始。

+1

请不要重复答案,如果你的答案看起来类似于以前 – Rakshi 2012-03-01 04:22:42

1

如果你是活动中可以使用onBackPressed这是一个内置的方法来处理回按键。

相关问题