我有两个活动A & B.在A我有三个ArrayLists。我想在活动B中访问这些ArrayList。我怎样才能做到这一点?这两个活动是在同一个包中。如何在不同的活动中使用数据?
回答
要回答你的问题 - 你可以很容易地通过搜索计算器找到了答案 - 如果你需要传递一个ArrayList,你可以这样做:
ArrayList<String> list = new ArrayList<String>();
list.add("hello");
Bundle b = new Bundle();
b.putSerializable("myList", list);
Intent myIntent = new Intent(this, ActivityB.class);
myIntent.putExtras(b);
startActivity(myIntent);
而且在ActivityB:
Intent myIntent = this.getIntent();
ArrayList<String> list = (ArrayList<String>) myIntent.getSerializableExtra("myList");
您可能无法直接访问它们。通常只有1个活动可以在前台。试图访问后台Activity中的元素(就像你从A中列出的A一样)是一个糟糕的设计选择。
我认为你需要从这些清单中的数据存储在某个共享位置:
- 让他们parcelable并
- 他们店里存放在你的应用程序的喜好在一个SQLite数据库
- 通过他们到活动B通过起始意图
此外,也许你不需要将整个列表传递给B,也许你只需要其中的一部分,也可以考虑。
如果我需要将部分数据传递给B,那么它可以完成? – 2010-10-20 10:53:35
你需要把它们作为额外的数据。实例化一个新的Intent对象,然后使用putInt(),putString()等来执行此操作。然后用这个instent来启动B活动。 – 2010-10-20 12:23:26
* make them parcelable and store them in you app's preferences * store them in a SQLite db * pass them to Activity B via the starting Intent
这是错误的。错误我的意思是,无需将Parcelable对象存储在持久性存储中,因为一旦您创建对象Parcelable,另一个Activity就可以在没有序列化的情况下访问对象(此外不推荐序列化)。 Android docs read:
可以通过IBinder发送的消息(数据和对象引用)的容器。一个Parcel可以同时包含在IPC的另一端(使用这里写入特定类型的各种方法,或者通用的Parcelable接口)的平坦数据,以及引用另一端的IBinder对象的引用一个代理IBinder与包裹中的原始IBinder连接。
包裹不是一个通用的序列化机制。该类(以及用于将任意对象放入Parcel的相应Parcelable API)被设计为高性能IPC传输。因此,将任何Parcel数据放入持久性存储中是不恰当的:Parcel中任何数据的底层实现中的更改都会导致旧数据无法读取。
- 1. 如何用不同的数据调用相同的活动(相同的布局)?
- 2. 使用类的数组在GridView中启动不同的活动
- 3. 如何在不同活动的片段之间发送数据
- 4. 如何使用两个不同的活动将数据放在两个不同的表中
- 5. 在ViewFlipper的不同视图中使用不同的活动
- 6. 如何在Android中使用不同参数在同一活动中裁剪两张不同的图像?
- 7. 在哪里存储在不同的Android活动中使用的数据?
- 8. 在所有活动中使用相同的数据库Android SQLite
- 9. 在三个活动中使用相同的数据
- 10. 如何从两个不同的活动检索数据并显示在另一个不同的活动
- 11. 如何在我的android活动中使用Sqlite数据库?
- 12. 如何使点击按钮在不同的活动中的Android
- 13. Android:如何使用从子活动中的父活动传递的数据?
- 14. 在同一活动中使用不同的布局
- 15. 在同一活动中使用不同类型的对话
- 16. 如何在不同的活动中查看Firebase数据(ListView格式)?
- 17. 如何在其他活动中使用数据库功能
- 18. 如何在其他活动中使用蓝牙传输数据?
- 19. 如何使用可重用活动在我的应用中定义不同的活动流程?
- 20. 如何使用不同的数据库?
- 21. 如何在2种不同的活动中使用通用按钮?
- 22. 我如何在活动记录的轨道中使用两个不同的数据库?
- 23. 如何使用不同活动的按钮在另一个活动中自动创建按钮?
- 24. 在android studio中使用DataBase,我该如何创建DataBase?我如何在不同的活动中使用它?
- 25. 如何在活动恢复但不活动时启动Android中的事件如何在Android中调用活动
- 26. 如何让文字出现在不同于同一活动的新活动上?
- 27. 如何使用两个不同的按钮在同一屏幕上启动两个不同的活动?
- 28. 不活动的数据库
- 29. 如何popupWindow从不同的活动
- 30. 如何访问GoogleApiClient不同的活动
谢谢lotttttt – 2010-10-20 14:03:30