2012-03-01 114 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這是一個內置的方法來處理回按鍵。

相關問題