java - 以编程方式使用单个 fragment 初始化 FragmentActivity

标签 java android android-fragments

我尝试向 Activity 中添加一个 fragment ,以避免声明布局 xml。我在做

@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.

是否有一个简短的表格可以避免此错误,或者我必须恢复之前的内容布局并删除他们的所有 View ?谢谢

编辑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;
    }

}

最佳答案

在膨胀时尝试以下代码。

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

这将避免默认情况下将 View 添加到父级。 使用另一种方法,它会默认添加一个父级。因此,当您尝试动态添加它时,它将抛出上述异常。

关于java - 以编程方式使用单个 fragment 初始化 FragmentActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12108630/

相关文章:

android - 是否有可能在 Fragmentactivity 中实现溢出菜单

android - 使用来自 fragment 中 web 服务的 2 个字符串填充 ListView

java - AWS Java SDK SQSlistener 端点问题

java - Android中的下标和上标字符串

java - 线程调度程序是 JVM 的一部分还是操作系统的一部分?

java - 检索商品价格时 Android 应用内结算崩溃

Android 从命令行构建 .jar 失败

android - 在具有多行标题的选项卡上设置 fragment

java - Java 中的内存泄漏。如何清除列表?

java - 如何将 BigInteger 转换为 BigDecimal?