【问题标题】:What is a proper way to get data of multiple Activity in a single Activity?在单个 Activity 中获取多个 Activity 数据的正确方法是什么?
【发布时间】:2013-08-30 14:28:45
【问题描述】:

我的应用中有 5 个活动。每个活动都有一些数据。我需要上一个活动中的所有以前的活动数据。之前所有的Activity都是一种Form。用户填写数据并移动到下一个活动,最后一个活动显示所有以前活动的数据。

【问题讨论】:

标签: android android-intent


【解决方案1】:

有几种方法可以做到这一点。

  • 使用 Intent 并保存数据,如 putString(...):
    这不是很好,因为您必须临时保存 Activity 中每个 Intent 的数据,并使用下一个 Intent 进一步移动它们。

  • 为您的数据使用一个类并将其通过每个意图的活动:
    通过这种方式,您可以将类的实例传递给活动以写入/读取您的数据。但是这个类需要 Parcelable / Serializable 接口

  • 使用静态类:
    您可以在每个 Activity 中访问此类,并按您的意愿进行读写。

  • 使用带有 Intent 的捆绑包:
    将所有数据保存在一个 Bundle 中并将其传递给活动。

  • 想想你的设计和使用片段:
    进行一项包含 5 个片段的活动。每个 Fragment 都保存/读取 Activity 中的数据。

最好的方法是使用 Bundle。

【讨论】:

    【解决方案2】:

    选项 1:

    如果您想为每个活动添加数据并将其结转到下一个活动,那么最好使用bundle 传递数据。

    在数据相对较小并且您只想将数据传递给下一个活动并且不想为将来存储数据的情况下,捆绑包更好。

    选项 2:

    您可以使用Sharedprefrences。更好地用于存储数据以备将来使用。

    选项 3:

    如果您有更多记录并且您希望它以结构化方式存储并以备将来使用,那么Sqlitedatabase 是显而易见的。

    如果您想非常频繁地使用您的数据并且它不是结构化的,那么以上选项是为了防止。

    【讨论】:

      【解决方案3】:

      您可以使用Intent

      第一个活动

      Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
      intent.putExtra("key_value", string); 
      startActivity(intent);
      

      第二个活动

      String text = getIntent().getStringExtra("key_value");
      

      或者如果你需要数据保持更长时间,并且在应用被杀死后可以重复使用,你可以使用SharedPrefrences

      将数据放入一些Activity

       SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
       editor.putString("ValueOne", "SomeValue" );
       editor.commit();
      

      从任何Activity 中的共享偏好中检索数据

      SharedPreferences prefs = getPreferences(MODE_PRIVATE); 
      String prefString = prefs.getString("ValueOne", null);
      

      【讨论】:

      • 我可以将所有数据直接发送到我想要显示所有数据的 Activity,而不是将数据从一个 Activity 传递到另一个 Activity 吗?
      • @SonusinghChauhan 是的,您可以使用 SharedPreferences 来做到这一点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 2013-11-20
      • 1970-01-01
      • 2013-12-05
      相关资源
      最近更新 更多