-3

我正在开发一个基于列表和地图的 android 应用程序。

加载列表时,我从 Web 服务获取数据,这与我将用于在地图中添加标记的数据相同。

如何避免再次加载数据?

谢谢。

编辑:我忘了说我正在使用带有两个片段的 ABS 选项卡控件,一个用于列表,另一个用于地图。我想将数据保留在选项卡控件活动中并与片段共享。

有没有办法从片段内的父活动中获取数据?而对于大量的数据,最好将内容写入sql?

4

3 回答 3

1

您可以将数据作为 Intent extra 传递并在另一个 Activity 中检索它:

Bundle extras = getIntent().getExtras(); 
String data;

if (extras != null) {
    data = extras.getString("key");
    //use your data
}

如果您的数据是某种无法通过 Intent extras 传递的对象,您可以创建一个扩展您的 Application 类的 Singleton。

于 2013-03-28T10:48:33.890 回答
0

您可以添加某些类型的 ArrayLists(整数、字符串...)作为额外的意图(例如public Intent putIntegerArrayListExtra (String name, ArrayList<Integer> value)在 Intent 类上)。

如果这些不合适,您可以使用 getter / setter 子类化您的 Application 类并将您的 List 存储在其中。您的 Application 对象可从所有使用的活动中获得getApplication()(然后您可以将其转换为您自己的应用程序子类型)。

于 2013-03-28T11:00:04.183 回答
0

首先,您的所有模型类都应该实现 Serializable,以便您可以将整个模型发送到另一个带有存储数据的活动。

然后在第一次活动之后

intent.putExtra("模型", commanModelList);

然后在第二个活动中获得这个意图

commanModelList = (ArrayList<CommanModel>) getIntent().getSerializableExtra("model");

将您的 commanModelList 与存储数据一起使用。

于 2013-03-28T10:55:27.600 回答