如何获得片段中相同的活动实例?
考虑这种情况: 有mainActivity
。形成这个活动,我们可以调用两个片段:fragmentA
和fragmentB
。如何获得片段中相同的活动实例?
mainActivity
有一个吸气器getValue
和一个设定器setValue
。
大多数情况下,这是应用程序的工作原理:mainActivity
已创建。从它fragmentA
被创建。在fragmentA
中按下后退按钮后,应用程序将移回mainActivity
并转至fragmentB
。
我想要做的是,我想setValue
到mainActivity
在fragmentA
,并得到fragmentB
该值。
我无法做到这一点,因为它看起来像两个片段不具有相同的活动实例。
这是我尝试从fragmentA
和fragmentB
访问mainActivity
制定者/吸气:((MainActivity)getContext()).getValue();
我在做什么错?
创建在活性的Bunde的对象束
Bundle bundle = new Bundle();
插入值(可以将多个值)
键可以是任意字符串,并应是唯一的每个值
bundle.setString(key,"value");
创建对象的相应片段并将其附加到它
fragmentobject.setArguments(bundle);
在接收片段创建包对象
Bundle fragmentbundle = getArguments();
String value = fragmentbundle.getString(key);
你这是怎么传的片段和活动或活动和活动
当然,这可能是最“正确”的做法。但是,我还需要传递BigDecimal值,并且尽我所知,您不能(或者您需要将其转换为String)。 – Marius
'字符串值=“1,000,000,000.999999999999999”; BigDecimal money = new BigDecimal(value.replaceAll(“,”,“”)); System.out.println(money);' –
@Marius'BigDecimal'是'Serializable'。 –
我会建议使用以下方法:
((MainActivity) getActivity()).getValue;
同时,确保在MainActivity
的getValue()
方法设置为公开。
我希望这有助于。
尽我所知 - 你应该使用getActivity进行与UI相关的工作getContext了解某些应用状态。 – Marius
那么,我使用我提到的用于发送和接收来自我主要活动的数据的方法。如果我误解了你,请纠正我。 –
将你的片段连接到任何一个活动是一个糟糕的设计 –
请在这里MainActivity和片段的发布您的代码之间的值。 –
听起来像这样。 http://stackoverflow.com/questions/24777985/how-to-implement-onfragmentinteractionlistener –
@marius什么是你传递给第二个片段的getValue? –