Android 如何在片段之间传递值?

Android 如何在片段之间传递值?,android,android-fragments,Android,Android Fragments,可以从fragment中调用另一个片段并以这种方式传递var City吗? 或者我应该使用接口或 代码: 片段: public class HomeFragment extends Fragment { private City city; public HomeFragment(){} public HomeFragment(City c){ city = c; } @Override public View onCreateView(LayoutInflater infla

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

代码:

片段:

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) { ....

谢谢

这不好,您应该使用Fragment.setArguments将参数传递给片段,它接受Bundle。所以,您必须能够将城市转换为Bundle。这是因为系统可能希望重新创建片段,然后使用参数对其进行初始化,然后在片段中调用getArguments()


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

它不正常,您应该使用接受Bundle的Fragment.setArguments向片段传递参数。所以,您必须能够将城市转换为Bundle。这是因为系统可能希望重新创建片段,然后使用参数对其进行初始化,然后在片段中调用getArguments()


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

否,您应该使用
fragment.setArguments(Bundle)
方法来传递参数或使用本教程中的接口:

否,您应该使用
fragment.setArguments(Bundle)
方法来传递参数或使用本教程中的接口:

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) { ....