我遇到这样的情况:

活动A-> B-> C-> D,当D完成后,我必须刷新ActivityA才能显示我在ActivityB,ActivityC和ActivityD中输入的内容,这是我的代码:

活动A

    @OnClick(R.id.btn_one)
    public void toActivityB(){
        Intent intent = new Intent();
        intent.setClass(this, ActivityB.class);
        startActivityForResult(intent, 1);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1 && resultCode == RESULT_OK){
            String b = data.getStringExtra("b");
            String c = data.getStringExtra("c");
            String d = data.getStringExtra("d");
            tvAll.setText(etOne.getText().toString() + "\n" + b + "\n" + c + "\n" + d);
        }
    }


活动B

    @OnClick(R.id.btn_two)
    public void toActivityC(){
        Intent intent = new Intent();
        intent.setClass(this, ActivityC.class);
        startActivityForResult(intent, 2);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 2 && resultCode == RESULT_OK){
            data.putExtra("b", etTwo.getText().toString());
            setResult(RESULT_OK, data);
            finish();
        }
    }


ActivityC的代码就像ActivityB一样,最后的ActivityD如下:

    @OnClick(R.id.btn_four)
    public void returnToActivityA(){
        Intent intent = new Intent();
        intent.putExtra("d", etFour.getText().toString());
        setResult(RESULT_OK, intent);
        finish();
    }


这样,我可以在ActivityB,ActivityC,ActivityD中获取输入值。但是我必须在每个Activity上覆盖方法onActivityResult并逐个处理数据。是否有其他简便的方法可以处理这种情况任何好的建议,我将不胜感激。

最佳答案

我建议您使用一个活动并将片段作为表单输入数据,一旦收集了所有数据,您可以根据要保存的数据将其保存在共享首选项或SQLITE数据库中,然后启动一个新活动以显示存储的数据
要么
创建一个parceleble对象,然后将该对象发送到新的Activity并在其中显示。

10-07 19:32