这是我的布局xml文件:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/container1"
        android:tag="1"
        //... >

        <TextView
            android:id="@+id/txt1"
            android:tag="1"
            //... />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/container2"
        android:tag="2"
        //... >

        <TextView
            android:id="@+id/txt2"
            android:tag="2"
            //... />
    </LinearLayout>

    //...


它有2个容器,每个容器内有一个textview。现在,当我触摸一个按钮时,我需要一个容器来交换文本视图。为此,这是我的方法:

person1 = (TextView) findViewById(R.id.txt1);
person2 = (TextView) findViewById(R.id.txt2);

place1 = (LinearLayout) findViewById(R.id.place1);
place2 = (LinearLayout) findViewById(R.id.place2);


--

place1.removeView(person1);
place2.removeView(person2);

place1.addView(person2);
place2.addView(person1);


但这就是我在LogCat上得到的:

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

最佳答案

两种布局都在其中包含一个TextView。因此,除了删除和添加视图之外,为什么不直接在它们之间切换文本呢?这样可以节省您的时间,并且性能会更好。

关于java - 在linearlayout中以编程方式编辑 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24061487/

10-10 09:31