如何在Android中保留较大集合中的数据子集?

时间:2016-05-20 19:23:46

标签: android android-fragments

网络调用返回一个非常大的json文件。但是,我只需要在整个应用程序中使用其中的一小部分。将少量数据用于多个片段和活动的最佳策略是什么?

我尝试使用共享首选项,但不存储对象。

2 个答案:

答案 0 :(得分:0)

从JSON中提取所需数据为String,然后将其作为extras参数传递给需要它的活动和片段:

Intent intent = new Intent(context, SomeActivity.class);
intent.putExtra("YOUR_DATA_KEY", yourJsonString);
startActivity(intent);

然后在需要它的活动和碎片中再次提取它:

Intent intent = getIntent();
String yourJsonString= intent.getStringExtra("YOUR_DATA_KEY");

答案 1 :(得分:0)

为了共享复杂的数据结构或对象,我将通过创建自定义子类来扩展Application。即使应用程序从一个活动转移到另一个活动,所有活动都可以访问应用程序对象(顾名思义)。下面是一个非常简单的例子,只是为了向您展示这个想法。您可以根据需要修改/调整它。

public class MyApplication extends Application {
   private X x;

   public static void setX(X x) { ... }
   public static X getX() { ... }
}
public class ActivityA extends Activity {

    ...
    MyApplication.setX(x);

}
public class ActivityB extends Activity {

    ...
    X x = MyApplication.getX();

}

X可以是集合,数据结构或任何对象。

扩展Application时,需要在清单中声明它。您可以找到有关如何执行此操作的信息。