我有四个名为activity1,activity2,activity3,activity4和finalactivity的活动。我构建了CV Builder,用于获取不同活动中的人员信息。
现在我想将activity1的数据发送到activity2,我为此目的使用了intent,但现在我不明白我如何将活动(1和2)的数据发送到activity3,依此类推。最后,我想将所有四项活动的数据发送到finalactivity,任何帮助吗?
答案 0 :(得分:2)
我认为您最好的选择是使用Application类。
为CV数据创建一个POJO类。并在Application类中保留一个对象。在所有活动中更新该班级中的数据提交点击。因此,您可以在上一个活动中使用更新的CV数据。
实施例
public class CVData{
//your String, int, getter, setter, etc.
}
申请类:
public class TestApplication extends Application {
//Object declaration
public CVData cvData;
public TestApplication () {
// TODO Auto-generated constructor stub
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
}
//setter getter for object
}
现在进入您的活动:
//after setContentView
TestApplication testAppObj = (TestApplication) getApplication();
myCVObj.setName("abc");
myCVObj.setEducation("engg");
testAppObj.setSomeObj(myCVObj);
//retrieve and update in other activities as:
someCVObj = testAppObj.getterMethodOfObj();
someCVObj.setGoal("learn");
testAppObj.setSomeObj(someCVObj);
因此,您将使用以下命令获取上次活动中的更新对象:
CVData updatedCVObj = testAppObj.getterMethodOfObj();
您必须在清单文件中注册Application类,就像注册活动一样:
<application
android:name="com.pkg.test.TestApplication " />
希望这有帮助。
答案 1 :(得分:1)
您可以将Activity1和Activity2的数据添加到一个包中并将其发送到Activity3(因为您已在Activity2中拥有Activity1的数据),并继续执行此操作直到活动4.这有点显而易见。 是否有任何特定问题阻止您这样做?
或者,您可以使用shared preferences存储每个活动的数据,然后在Activity4中检索它们。
请记住,在Actiuvity4
完成后,请从共享偏好中删除数据答案 2 :(得分:1)
您可以采用不同的方法:
1。共享偏好
您只需在SharedPreferences
中添加所有值,并在最终活动
2. DataModel类
创建一个包含所有数据的bean类。设置该类对象中的值并在最终活动中使用它
班级:
public class ResumeData {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
获取一个静态对象并使用它来设置并获取值:
public static ResumeData resumeData;
resumeData = new ResumeData();
// Set
resumeData.setName("name");
// Get
resumeData.getName()
3. 将汇总数据发送到最终活动
您可以在Activity2中获取Activity1的数据。只需将Activity1的数据与bundle一起发送到下一个活动。
希望它会帮助你ツ