我有两个片段和一个活动+主要活动
所以有意图的片段不包含我想要传递的信息,但是另一个片段包含没有意图的信息。
我看到的一个解决方案是将第一个片段和活动代码合并到MainActivity中,但在这种情况下,我必须将所有代码复制到那里。
还有其他解决方案吗?
答案 0 :(得分:1)
在Fragment1中创建一个接口,该接口必须由activity实现。它将在Fracment1和活动之间进行沟通。 在实现方法中,您可以调用Fragment
private OnFragmentInteractionListener mListener;
点击buttin时的方法
public void onButtonPressed() {
if (mListener != null) {
mListener.onFragmentInteraction(data);
}
}
将由活动实现的界面
public interface OnFragmentInteractionListener {
// TODO: Update argument type and name
public void onFragmentInteraction(String data);
}
答案 1 :(得分:1)
我希望我理解你的问题。
public class Fragment1 extends Fragment
{
public Intent getIntent ()
{
return neededIntent;
}
}
public class Fragment2 extends Fragment
{
public String getStringData ()
{
return stringData;
}
}
public class MyActivity extends Activity
{
public void makeIntent ()
{
Intent i = fragment1.getIntent ();
String data = fragment2.getStringData ();
}
}
答案 2 :(得分:1)
为两个片段添加标签 您可以在第二个片段中创建公共方法以获取所需的文本,并在第一个片段中访问该片段,如此
Fragment frag2 = getFragmentMangegetFragmentManager().findFragmentByTag("Frag2");
if(frag2 != null){
text = frag2.getRequiredText();
}
答案 3 :(得分:1)
如果您只是想将数据从第二个Fragment
传递给父亲Activity
,您可以执行以下操作:
//in 2nd Fragmnet you can call whenever you want:
if(getActivity() != null && getActivity() instanceof FatherActivity){
// You can create setYourData in your Father Activity.
((FatherActivity)getActivity()).setYourData(yourData);
}
答案 4 :(得分:1)