我正在开发一个基于列表和地图的 android 应用程序。
加载列表时,我从 Web 服务获取数据,这与我将用于在地图中添加标记的数据相同。
如何避免再次加载数据?
谢谢。
编辑:我忘了说我正在使用带有两个片段的 ABS 选项卡控件,一个用于列表,另一个用于地图。我想将数据保留在选项卡控件活动中并与片段共享。
有没有办法从片段内的父活动中获取数据?而对于大量的数据,最好将内容写入sql?
我正在开发一个基于列表和地图的 android 应用程序。
加载列表时,我从 Web 服务获取数据,这与我将用于在地图中添加标记的数据相同。
如何避免再次加载数据?
谢谢。
编辑:我忘了说我正在使用带有两个片段的 ABS 选项卡控件,一个用于列表,另一个用于地图。我想将数据保留在选项卡控件活动中并与片段共享。
有没有办法从片段内的父活动中获取数据?而对于大量的数据,最好将内容写入sql?
您可以将数据作为 Intent extra 传递并在另一个 Activity 中检索它:
Bundle extras = getIntent().getExtras();
String data;
if (extras != null) {
data = extras.getString("key");
//use your data
}
如果您的数据是某种无法通过 Intent extras 传递的对象,您可以创建一个扩展您的 Application 类的 Singleton。
您可以添加某些类型的 ArrayLists(整数、字符串...)作为额外的意图(例如public Intent putIntegerArrayListExtra (String name, ArrayList<Integer> value)
在 Intent 类上)。
如果这些不合适,您可以使用 getter / setter 子类化您的 Application 类并将您的 List 存储在其中。您的 Application 对象可从所有使用的活动中获得getApplication()
(然后您可以将其转换为您自己的应用程序子类型)。
首先,您的所有模型类都应该实现 Serializable,以便您可以将整个模型发送到另一个带有存储数据的活动。
然后在第一次活动之后
intent.putExtra("模型", commanModelList);
然后在第二个活动中获得这个意图
commanModelList = (ArrayList<CommanModel>) getIntent().getSerializableExtra("model");
将您的 commanModelList 与存储数据一起使用。