我有一个包含两个片段的Activity,我需要将一个字符串从FragmentA传递给FragmentB。
要传递数据,我在FragmentA中有这个:
Intent intent = new Intent(getActivity(), FragmentB.class);
intent.putExtra("name", "Mark");
startActivity(intent);
为了获取数据,我在FragmentB中做了这个。
Intent intent = getActivity().getIntent();
Bundle b = intent.getExtras();
if(b!=null)
{
String name =(String) b.get("name");
nameTextView.setText(name);
}
但这不起作用。是否有特定的方法将字符串从一个片段传递到另一个片段?
答案 0 :(得分:14)
答案 1 :(得分:4)
在片段之间传递数据,您可以使用setArguments(Bundle b)
。例如:
public class FragmentA extends Fragment {
public static FragmentA newInstance(String name) {
Bundle bundle = new Bundle();
bundle.putString("name", name);
FragmentA f = new FragmentA();
f.setArguments(bundle);
return f;
}
}
答案 2 :(得分:3)
您可以执行以下操作,
Fragment fr=new friendfragment();
FragmentManager fm=getFragmentManager();
android.app.FragmentTransaction ft=fm.beginTransaction();
Bundle args = new Bundle();
args.putString("CID", "your value");
fr.setArguments(args);
ft.replace(R.id.content_frame, fr);
ft.commit();
要接收数据,请执行以下操作,
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String strtext = getArguments().getString("CID");
return inflater.inflate(R.layout.fragment, container, false);
}
答案 3 :(得分:0)
FragmentActivity 1片段中的代码A:
fb是我创建的bean的实例,ID是参数
Intent intent = new Intent(getContext(), FragmentActivity2.class);
intent.putExtra("id", fb.ID);
startActivity(intent);
FragmentActivity 2片段中的代码Any:
fragmentA= (FragmentActivity2) getActivity();
String cust_id = fragmentA.getIntent().getExtras().getString("id");