简体   繁体   English

当第二个片段已经有数据时,将数据从一个片段传递到另一个片段

[英]Passing data from one fragment to another when second fragment already has data

So, I have a fragment A, and a fragment B. Fragment A has some data, user presses a Button, goes to fragment B, performs some actions there, and when he is done I need the user to go back to fragment A with some data recovered from fragment B, while the data in fragment A is not recreated, but keeps the data it had in the first time.所以,我有一个片段 A 和一个片段 B。片段 A 有一些数据,用户按下一个按钮,转到片段 B,在那里执行一些操作,当他完成后,我需要用户 go 回到片段 A从fragment B中恢复了一些数据,而fragment A中的数据没有重新创建,而是保留了它第一次拥有的数据。 This shouldn't be so hard, but I am having some problems achieving it.这不应该那么难,但我在实现它时遇到了一些问题。

I can, of course, call fragment A from fragment B, but the data previously existing in fragment A is erased.当然,我可以从片段 B 中调用片段 A,但之前存在于片段 A 中的数据会被删除。 Or I can go through the backstack to present fragment A again, but how could I pass data from fragment B while maintaining data present in fragment A?或者我可以通过后台堆栈 go 再次呈现片段 A,但是如何在保持片段 A 中存在的数据的同时从片段 B 传递数据?

both Fragment s are attached to same Activity , so you can introduce some methods in it两个Fragment都附加到同一个Activity ,因此您可以在其中引入一些方法

private String data = null;

public void storeData(String data){
    this.data = data;
}

public void restoreData(){
    return data;
}

and call from Fragment s side并从Fragment端调用

// when B is detached/removed
((MainActivity) getActivity()).storeData(data);

// onCreateView of A?
String restoredData = ((MainActivity) getActivity()).restoreData(); 
if (restoredData!=null) ...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM