Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 传递碎片';s B已将状态保存到活动A_Java_Android - Fatal编程技术网

Java 传递碎片';s B已将状态保存到活动A

Java 传递碎片';s B已将状态保存到活动A,java,android,Java,Android,我的问题有些理论性(我为缺少代码而道歉,但我甚至不确定这是否可行) 我有两个活动和两个片段(每个片段对应一个活动)。活动A(纵向模式)仅显示片段A。活动B(纵向模式)仅显示片段B 当景观中的活动A(MainActivity)必须显示片段A(属于自身)和片段B(属于活动B)时,我的问题就会出现。我似乎无法将片段B的状态保存到活动A(MainActivity) 这是我在片段B中尝试的: ... @Override public void onCreate(Bundle savedInstanceSt

我的问题有些理论性(我为缺少代码而道歉,但我甚至不确定这是否可行)

我有两个活动和两个片段(每个片段对应一个活动)。活动A(纵向模式)仅显示片段A。活动B(纵向模式)仅显示片段B

当景观中的活动A(MainActivity)必须显示片段A(属于自身)和片段B(属于活动B)时,我的问题就会出现。我似乎无法将片段B的状态保存到活动A(MainActivity)

这是我在片段B中尝试的:

...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstanceState();
}
...
我可以用这段代码保存片段B的状态(它的所有局部变量)吗

在活动A(MainActivity)中,我尝试检测设备是否在横向:

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
    // restore fragment's B state so the recent data passed into it shows up 
    // in landscape (in Activity A).    
}

else {
    // keep doing what you're doing in portrait view.   
}
每次我旋转我的设备时,片段B返回为空,即使在纵向模式下,我有数据显示(从片段a中的列表中选择项目传递的数据)


在这种特殊情况下,如何捕获片段B的状态?非常感谢。

您可以在捆绑包中保存不特定于视图的状态,并且在片段生命周期的每次恢复(例如重新显示时)上,您也应该重新加载该捆绑包。这要求您知道其他活动/片段对从您的片段中检索感兴趣的具体内容,但最好是从负责提供该信息的片段中检索失败,而不是在接收端因未知原因而检索失败(IMO)

为了澄清,当您处于横向模式时,您正在显示片段A和片段B,但主机是活动A。对吗?您希望使用先前由Activity-B托管时可能通过onSaveState保留的相同状态初始化Fragment-B。对吗?@selbie是的,基本上我希望在将数据从Activity A传递到Activity B到frabment B后,将该片段检索回mainActivity(Activity A)在风景中显示frabment B和上次传递的变量。对不起,这听起来太。。。令人费解:)是的,主机是activity Athanks。对于您的答案,您能否给我一个简单的示例,说明如何进行保存,以及如何/在何处确定捆绑包的目标