0

我有一个带有后退和下一步按钮的 5 步信息向导,每一步都是一个活动。问题是当用户点击活动上的后退按钮(不是手机的后退按钮)然后再次点击下一步时,活动的顺序有点混乱。这通常在用户按下手机上的物理后退按钮时出现。

例子:

(1)(下一个) -> (2)(下一个) -> (3)(后退) -> (2)(下一个) -> (3)(下一个) -> (4)

现在,当用户从第 4 步开始反复按手机上的返回键时,活动将按以下顺序显示:

4 - 3 - 2 - 3 - 2 - 1

代替

4 - 3 - 2 - 1

这是我的第三个屏幕的代码:

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

我没有看到任何错误,所以我认为这可能只是我的代码中的某些内容。

4

1 回答 1

2

问题是您的back()方法,因为它启动了先前活动的另一个实例。finish()如果您不需要传回数据,您可以只调用当前活动并自动返回上一个活动。

    private void back() {
        finish();
    }
于 2013-05-19T10:20:24.303 回答