![](/img/trans.png)
[英]Resting Activity intent Values after press back and selecting another Button?
[英]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.