我必须经常在两种布局之间切换.错误发生在下面发布的布局中.

第一次调用我的布局时,没有发生任何错误,一切都很好.然后,当我调用另一个布局(空白布局)并再次调用我的布局时,它会抛出以下错误:

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

我的布局代码如下所示:

    tv = new TextView(getApplicationContext()); // are initialized somewhere else
    et = new EditText(getApplicationContext()); // in the code


private void ConsoleWindow(){
        runOnUiThread(new Runnable(){

     @Override
     public void run(){

        // MY LAYOUT:
        setContentView(R.layout.activity_console);
        // LINEAR LAYOUT
        LinearLayout layout=new LinearLayout(getApplicationContext());
        layout.setOrientation(LinearLayout.VERTICAL);
        setContentView(layout);

        // TEXTVIEW
        layout.addView(tv); //  <==========  ERROR IN THIS LINE DURING 2ND RUN
        // EDITTEXT
        et.setHint("Enter Command");
        layout.addView(et);
        }
    }
}

我知道以前有人问过这个问题,但它对我的情况没有帮助.

推荐答案

错误信息说明了您应该做什么.

// TEXTVIEW
if(tv.getParent() != null) {
    ((ViewGroup)tv.getParent()).removeView(tv); // <- fix
}
layout.addView(tv); //  <==========  ERROR IN THIS LINE DURING 2ND RUN
// EDITTEXT

Java相关问答推荐

Proguard配置以保留具有参数的注释的成员

是否可以从@ TrustMapping中删除特定方法的基路径?

Java模式匹配记录

缩小画布比例后更改滚动窗格的内部大小

需要一个找不到的jakarta.sistence.EntityManager类型的Bean

流迭代列表<;对象>;上的NoSuchElementException

存根基类的受保护方法

使用Testcontainers与OpenLiberty Server进行集成测试会抛出SocketException

如何获得执行人?

对Java中的通配符参数的混淆

SpringBoot+Java 17@Valid未验证POJO

如何在ApachePOI中将图像添加到工作表的页眉?

如何获取Instant#of EpochSecond(?)的最大值

多重延迟签名

我如何知道MediaDiscoverer何时完成发现介质?

Java中将文本拆分为数字或十进制数字和字符串

buildDir:File!&#的getter解决方案是什么?39.被抛弃

除0错误/抱歉我的句子是PT

H2数据库仅支持%1个结果集?

无限递归Java问题