Android 如何在片段之间传递值?
可以从fragment中调用另一个片段并以这种方式传递var City吗? 或者我应该使用接口或 代码: 片段: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
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) { ....