2012-08-24 55 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); 

这样可以避免在默认情况下将视图添加到父项。 通过使用其他方法,它将默认添加父项。所以当你试图动态添加它时,它会抛出上面提到的异常。

相关问题