我对Android很陌生并遇到问题。
我有一个A级,我想在那里打电话给另一个活动。我发现一些帖子说没有办法暂停调用Activity并等待结果。
seq2seq
这不是一个完整的例子,但基本上是我面临的问题。
我有一个循环并尝试打开另一个活动。当我启动“OtherActivity”时,循环不会停止。 我看到的第一件事是列表的最后一个元素的OtherActivity(这里是字符串“b”)。当我完成此活动时,我看到OtherActivity字符串“a”的顺序错误。
我认为这是一个回调,但我不知道如何实现它,因为回调处理程序不在循环中。
我再次不确定回调是否是一个好主意,因为很多人说我不应该暂停子活动的“调用”活动。
答案 0 :(得分:1)
你这样做是完全错误的,如果你想将数据发送到其他活动并做一些工作然后得到结果,我宁愿将整个数据作为列表发送,做工作然后从中获取数据活动,你不应该在一个循环中这样做。将其传递为intent或将其保存在数据库中,然后从数据库中检索。
答案 1 :(得分:0)
如果你想将整个字符串列表传递给另一个活动,我建议你这样做
如果E类型是,您可以以相同的方式传递ArrayList 序列化的。
你可以调用putExtra(String name,Serializable value) 意图存储,并使用getSerializableExtra(String name)进行检索。
示例:
ArrayList<String> myList = new ArrayList<String>(); intent.putExtra("mylist", myList);
在另一项活动中:
ArrayList<String> myList = (ArrayList<String>) getIntent().getSerializableExtra("mylist");
请注意序列化可能会导致性能问题:需要时间,并且会分配大量对象(因此必须进行垃圾回收)
来源:Passing a List from one Activity to another
或者正如Abdul建议的那样,将数据保存到数据库并从其他活动
中检索数据