Java 如何在片段中获得相同的活动实例?
考虑以下情况: 有Java 如何在片段中获得相同的活动实例?,java,android,android-fragments,Java,Android,Android Fragments,考虑以下情况: 有main活动。从这个活动中我们可以调用两个片段:fragmentA和fragmentB main活动有一个gettergetValue和一个settersetValue 大多数情况下,这就是应用程序的工作方式:mainActivity已创建。从它片段创建一个。在fragmentA中按下后退按钮后,应用程序将返回到mainActivity并转到fragmentB 我想做的是,我想在fragmentA中setValue到mainActivity,然后在fragmentB中获取该值
main活动
。从这个活动中我们可以调用两个片段:fragmentA
和fragmentB
main活动
有一个gettergetValue
和一个settersetValue
大多数情况下,这就是应用程序的工作方式:mainActivity
已创建。从它片段创建一个。在fragmentA
中按下后退按钮后,应用程序将返回到mainActivity
并转到fragmentB
我想做的是,我想在fragmentA
中setValue
到mainActivity
,然后在fragmentB
中获取该值
我不能这样做,因为看起来两个片段没有相同的活动实例
这就是我如何尝试从fragmentA
和fragmentB
访问mainActivity
的setter/getter:((mainActivity)getContext()).getValue()代码>
我做错了什么?我建议使用以下方法:
((MainActivity) getActivity()).getValue;
另外,确保main活动中的getValue()
方法设置为public
我希望这会有所帮助。在活动中创建Bunde对象
Bundle bundle = new Bundle();
在bundle中插入值(可以传递多个值)
键可以是任何字符串,并且对于每个值都应该是唯一的
bundle.setString(key,"value");
创建相应片段的对象并将包附加到该对象
fragmentobject.setArguments(bundle);
在接收片段中创建Bundle对象
Bundle fragmentbundle = getArguments();
String value = fragmentbundle.getString(key);
这是在片段和活动或活动和活动之间传递值的方式请在此处发布MainActivity和片段的代码。听起来像这样@marius您要传递给第二个片段的getValue是什么?@VinodPattanshetti它是int,另一个值是BigDecimal(我有不止一个)@marius您应该提问以显示您的实际代码正如我所知-您应该使用getActivity进行UI相关的工作,使用getContext了解应用程序的某些状态。嗯,我使用我提到的方法向我的主要活动发送和接收数据。如果我误解了你,请纠正我。将你的片段耦合到任何一个活动都是很糟糕的design@cricket_007请你详细说明你的观点好吗?我不明白你说的耦合是什么意思。一个片段永远不应该知道它们连接到哪个特定的片段。当然,这可能是最“正确”的方法。但是,我还需要传递BigDecimal值,据我所知,您不能(或者需要将其转换为字符串)。String value=“100000000.99999999999”;BigDecimal money=新的BigDecimal(value.replaceAll(“,”,”);系统输出打印(货币)
@MariusBigDecimal
是可序列化的。