多步向导上的活动流问题

时间:2013-05-19 10:16:58

标签: android android-activity

我有一个带有后退和下一个按钮的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);
    }
}

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

1 个答案:

答案 0 :(得分:2)

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

    private void back() {
        finish();
    }