我如何将所有活动的数据传递给最终活动?

时间:2014-11-21 05:59:59

标签: android

我有四个名为activity1,activity2,activity3,activity4和finalactivity的活动。我构建了CV Builder,用于获取不同活动中的人员信息。

现在我想将activity1的数据发送到activity2,我为此目的使用了intent,但现在我不明白我如何将活动(1和2)的数据发送到activity3,依此类推。最后,我想将所有四项活动的数据发送到finalactivity,任何帮助吗?

3 个答案:

答案 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一起发送到下一个活动。

希望它会帮助你ツ