2014-02-21 37 views
0

我在我的活動中設置了一個片段,但我想知道如何將數據從活動傳遞到片段中?從片段中的活動獲取數據

例如,這是我的代碼:

public class MyFragment extends Fragment 
{ 
    private MyData _myData; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.custom_fragment, container, false); 

     MyActivity activity = (MyActivity) getActivity(); // Unreachable code error here 
     _myData = activity.getMyData(); 
    } 
} 

我需要能夠訪問片段中的MyData對象的內容。但是,當我嘗試使用上述代碼時,即使getMyData()MyActivity類中的公共方法,我也會收到「無法訪問的代碼」錯誤。

回答

5

這行是一個return語句問題

return inflater.inflate(R.layout.custom_fragment_make_assembly_machine_location, container, false); 

return語句使函數返回!,所以下面的代碼永遠不會被執行!

+0

我怎麼可能錯過了!謝謝,當然固定它:) – b85411

2

你以前

MyActivity activity = (MyActivity) getActivity(); 

移動return語句最後

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     MyActivity activity = (MyActivity) getActivity(); 
     _myData = activity.getMyData(); 
     return inflater.inflate(R.layout.custom_fragment, container, false); 
    } 

你也可能要檢查

Send data from activity to fragment in android

+1

是的,setArguments絕對是您的選擇! – Blackbelt