簡體   English   中英

按后退按鈕進入另一項活動

[英]Press back button to another activity

我按下后退按鈕時嘗試下面的代碼調用另一個活動:

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

嘗試覆蓋活動的onBackPressed()方法

來自docs: onBackPressed

試試這樣......

    @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中它將完成當前活動,之前的活動將開始。

如果您在Activity中 ,則可以使用onBackPressed ,這是一種處理后退按鍵的內置方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM