2012-08-24 59 views
0

爲了避免聲明佈局xml,我正在將一個片段添加到活動中。我在做以編程方式使用單個片段初始化FragmentActivity

@Override 
protected void onCreate(Bundle arg0) { 
    super.onCreate(arg0); 
    getSupportFragmentManager().beginTransaction() 
      .add(android.R.id.content, new mFragment()).commit(); 
} 

但它與崩潰:

java.lang.IllegalStateException: The specified child already has a parent. 
You must call removeView() on the child's parent first. 

是否有避免這種錯誤,或者我必須收回之前的內容佈局,並刪除他們所有的意見很短的形式?由於

編輯mFragment代碼:

public class mFragment extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View result= inflater.inflate(R.layout.activity_main, container); 
     return result; 
    } 

} 
+0

你的片段類'mFragment'的郵政編碼 – waqaslam

+0

郵政編輯;)。 – Addev

+0

看到這個問題。 http://stackoverflow.com/questions/11973016/add-multiple-fragments-programmatically/11973156#11973156 – DeeV

回答

1

變化:

View result= inflater.inflate(R.layout.activity_main, container); 

要:

View result= inflater.inflate(R.layout.activity_main, container, false); 
3

嘗試下面的代碼,而膨脹。

View result= inflater.inflate(R.layout.activity_main, container, false); 

這樣可以避免在默認情況下將視圖添加到父項。 通過使用其他方法,它將默認添加父項。所以當你試圖動態添加它時,它會拋出上面提到的異常。

相關問題