2014-02-07 109 views
0

可以從fragment中調用另一個片段並以這種方式傳遞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) { .... 

感謝

回答

4

它也不行,你應該通過使用參數片段Fragment.setArguments,它接受Bundle。所以你必須能夠將City換成Bundle。這是因爲系統可能需要重新創建片段,然後使用參數來初始化它,然後在片段中調用getArguments()。

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