我有一个带有后退和下一个按钮的5步信息向导,每个步骤都是一个活动。问题是当用户点击活动上的后退按钮(而不是手机的后退按钮)然后再次点击时,活动的顺序有些混乱。当用户按下手机上的物理后退按钮时,通常会看到这种情况。
示例:
(1)(下一个) - > (2)(下一个) - > (3)(返回) - > (2)(下一个) - > (3)(下一个) - > (4)
现在当用户从步骤4反复按下电话上的后退键时,活动将按以下顺序显示:
4 - 3 - 2 - 3 - 2 - 1
而不是
4 - 3 - 2 - 1
以下是我的第3个屏幕的代码:
public class Step3Activity extends Activity {
Button buttonNext, buttonBack;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonNext = (Button) findViewById(R.id.buttonNext);
buttonBack = (Button) findViewById(R.id.buttonBack);
buttonNext.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
next();
}
});
buttonBack.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
back();
}
});
}
private void next() {
Intent intent = new Intent(this, Step4Activity.class);
startActivity(intent);
}
private void back() {
Intent intent = new Intent(this, Step2Activity.class);
startActivity(intent);
}
}
我没有看到任何错误,所以我认为它可能只是我代码中的内容。
答案 0 :(得分:2)
问题是您的back()
方法,因为它启动了上一个活动的另一个实例。您可以在当前活动上调用finish()
,如果您不需要传回数据,则会自动返回上一个活动。
private void back() {
finish();
}