【问题标题】:How I pass data of all activites to final activity?如何将所有活动的数据传递给最终活动?
【发布时间】:2014-11-21 14:44:00
【问题描述】:

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

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

【问题讨论】:

  • SharedPreferences 可用于存储数据
  • 请通过提供数据说明您真正想要做什么?
  • 我想显示我在上一个活动中的四个活动中获得的数据。就像我在第一个活动中获得个人信息,在第二个活动中获得教育信息,在第三个活动中获得经验和在第四个活动中获得项目详细信息现在我想在最后一个活动中显示这些信息,在一个活动中显示所有信息。
  • 如果你不想保存更长时间,你应该使用 pojo
  • 我是否有可能在第一个活动中做出意图并推送一些数据并开始第二个活动,在第二个活动中我得到那个意图并推送一些其他数据并开始第三个活动等等。

标签: android


【解决方案1】:

我认为您最好的选择是使用 Application 类。

为 CV 数据创建一个 POJO 类。并在 Application 类中保留一个对象。在所有活动的提交单击中更新该类中的数据。所以你可以在上次活动中使用更新的简历数据。

示例:

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
        android:name="com.pkg.test.TestApplication " />

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    你可以将Activity1和Activity2的数据加到一个bundle中发送给Activity3(因为你已经在Activity2中拥有了Activity1的数据),一直这样一直到Activity 4。这很明显。 是否有任何具体问题阻止您这样做?

    或者,您可以使用shared preferences 存储来自每个活动的数据,然后在活动4 中检索它们。

    记得在 Actiuvity4 中完成后从 sharedpreferences 中删除数据

    【讨论】:

      【解决方案3】:

      您可以采用不同的方法:

      1.共享偏好

      您可以简单地在SharedPreferences 中添加所有值并在最终活动中使用它

      2.数据模型类

      创建一个包含所有数据的 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 一起发送到下一个 Activity。

      希望对你有帮助ツ

      【讨论】:

        猜你喜欢
        • 2014-10-30
        • 1970-01-01
        • 2010-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多