从片段调用另一个片段并以这种方式传递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) { ....
感谢
答案 0 :(得分:4)
不行,你应该使用Fragment.setArguments将参数传递给片段,它接受Bundle。因此,您必须能够将City转换为Bundle。这是因为系统可能想要重新创建Fragment然后使用参数来初始化它,然后在片段中调用getArguments()。
如果您的片段被保留,这是可以接受的。它是使用setRetainInstance(true)创建的。
答案 1 :(得分:0)
不,您应该使用fragment.setArguments(Bundle bundle)
方法传递参数或使用本教程中的界面:Communicating with Other Fragments