2011-12-29 104 views
3

在AActivity中,当button1按下时,然后调用BActivity。返回不按“返回”按钮

Button b1= (Button)findViewById(R.id.button1); 
b1.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent = new Intent(); 
intent.setClass(AActivity.this, BActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
} 
}); 

在BActivity中,我希望当按钮2按下时,然后调用AActivity。

Button b2= (Button)findViewById(R.id.button2); 
b2.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
//How to do? 
} 
}); 

我想要没有按下键盘上的“后退”按钮。 并用布局中的按钮替换。 我该怎么办?

当回调到AActivity时,是否可以运行onCreate()方法?

回答

7

只有你必须通过调用finish()方法来完成活动

示例代码

Button b2= (Button)findViewById(R.id.button2); 
b2.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
finish(); 
} 
}); 
+0

我不认为这是处理onBackPress的好方法。它只适用于活动堆栈,并非全部,就像片段!在这种情况下,您应该使用 – 2012-03-22 09:00:53

+1

'FragmentManager ft = getSupportFragmentManager();' 'ft.popBackStackImmediate();' – 2012-03-22 09:06:53

1
Button b2 = (Button) findViewById(R.id.button2); 
b2.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Intent intent = new Intent(); 
     intent.setClass(BActivity.this, AActivity.class); 
     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(intent); 
    } 
}); 
3

也许只是在您的活动中致电finish()

2

在BUTTON2的onclick()方法,你可以只是把

finish(); 

,或者你可以指定与AActivity.class新意图为目标。

3

你会得到通过这个简单的代码“返回”按钮的功能:)至于后退按钮在手机上正在完成导致活动堆栈上的以前活动再次开始的当前活动。

Button b2= (Button)findViewById(R.id.button2); 
b2.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
finish(); 
} 
});