如何将值从片段传递到片段?

时间:2014-02-07 14:26:10

标签: android android-fragments

从片段调用另一个片段并以这种方式传递var City是否可以? 或者我应该使用接口或......

代码:

getActivity().getFragmentManager().beginTransaction()
                .replace(R.id.content_frame, new HomeFragment(City).commit();

和片段:

public class HomeFragment extends Fragment  {

private City city;

public HomeFragment(){}

public HomeFragment(City c){
    city = c;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) { ....

感谢

2 个答案:

答案 0 :(得分:4)

不行,你应该使用Fragment.setArguments将参数传递给片段,它接受Bundle。因此,您必须能够将City转换为Bundle。这是因为系统可能想要重新创建Fragment然后使用参数来初始化它,然后在片段中调用getArguments()。

如果您的片段被保留,这是可以接受的。它是使用setRetainInstance(true)创建的。

答案 1 :(得分:0)

不,您应该使用fragment.setArguments(Bundle bundle)方法传递参数或使用本教程中的界面:Communicating with Other Fragments