2013-12-03 107 views
2

我有一個包含兩個片段的大型佈局文件:一個列表片段和一個詳細片段。列表片段應根據傳遞給Activity的TYPE參數列出不同的數據。問題是,當我在Activity的onCreate()方法中調用setContentView()方法時,片段會創建,我無法將此參數傳遞給它。 代碼:內將參數傳遞給片段

公共類VideoPlayerActivity擴展FragmentActivity {

Type type; 
MyListFragment listFragment; 
FragmentManager fragmentManager; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_layout); 

    fragmentManager = getSupportFragmentManager(); 

    Bundle extras = getIntent().getExtras(); 
    if (extras != null && extras.containsKey(Constants.KEY_TYPE)) { 
     int type = extras.getInt(Constants.KEY_TYPE); 
     type = Type.getTypeByValue(type); 
    } 

    if (findViewById(R.id.fragment_container) != null) { 
     // Normal Screen Layout 
     if (savedInstanceState != null) { 
      return; 
     } 
     listFragment = new MyListFragment(); 
     getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, listFragment).commit(); 
    } else { 
     // Large Screen layout 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
     listFragment = (MyListFragment) fragmentManager.findFragmentById(R.id.listFragment); 
    } 

} 

如果我new活動,我可以調用它的onAttach()方法的方法來獲取參數,但在這個例子中,我已經定義片段xml佈局,並在活動創建時進行初始化。你有什麼主意嗎?

回答