按后退按钮进入另一项活动

时间:2012-03-01 04:07:54

标签: java android

我按下后退按钮时尝试下面的代码来调用另一个活动:

@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);  
   }
});

我该如何修改?

5 个答案:

答案 0 :(得分:15)

要处理背压,您必须覆盖Onbackpress方法。

@Override
public void onBackPressed() {

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

答案 1 :(得分:2)

尝试覆盖活动的onBackPressed()方法

来自文档:onBackPressed

答案 2 :(得分:2)

试试这个......

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

答案 3 :(得分:2)

对于后退按钮,您必须覆盖活动中的OnBackPressed()

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


}

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

答案 4 :(得分:1)

如果您在活动中,则可以使用 onBackPressed 这是一种内置方法来处理按键按下。