我遇到这样的情况:
活动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并在其中显示。