如何在按钮之间添加TextView

时间:2016-11-17 14:59:16

标签: android android-layout android-relativelayout

我正在尝试单击按钮以动态添加带有与按钮关联的注释的textview。我有一个按钮A和B.我想(当我点击A时)在按钮A和B之间添加一个文本/ TextView。

这是我的xml文件:

Flows

这是我尝试过的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >


    <Button
        android:id="@+id/a"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:text="A"
        />

    <Button
        android:id="@+id/b"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/a"
        android:layout_marginTop="5dp"
        android:text="B"
        />


    <TextView
        android:id="@+id/txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is a test...."
        android:visibility="invisible"
        />

</RelativeLayout>

我有以下错误消息:指定的子项已经有父项。您必须首先在孩子的父母身上调用removeView()。

5 个答案:

答案 0 :(得分:1)

1)您可以将RelativeLayout更改为LinearLayout

2)在按钮之间移动TextView并设置可见的GONE。

3)onClick() - &gt; setVisibility to View.VISIBLE。

希望能帮到你。

答案 1 :(得分:1)

你可以尝试。

TextView textView;
a.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
                p.addRule(RelativeLayout.BELOW, a.getId());
    textView = new TextView(MainActivity.this);
    layout.addView(textView, p);

            }
        });

比你可以在上面设置任何文字。

答案 2 :(得分:0)

视图txt已添加到XML中的RelativeLayout。您无需将其重新添加到布局中,只需设置其可见性即可显示它,即

    public void onClick(View v) {
        txt.setVisibility(View.VISIBLE);
    }

答案 3 :(得分:-1)

如果要在按钮A和B之间放置textview
Xml就像

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >


    <Button
        android:id="@+id/a"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:text="A"
        />

   <TextView
        android:id="@+id/txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is a test...."
        android:visibility="invisible"
        />

   <Button
        android:id="@+id/b"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/a"
        android:layout_marginTop="5dp"
        android:text="B"
        />
</RelativeLayout>

并将您的Java代码更改为

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final Button a, b , c;
    final TextView txt;
    final RelativeLayout layout;

    layout = (RelativeLayout) findViewById(R.id.layout);
    a = (Button) findViewById(R.id.a);
    b = (Button) findViewById(R.id.b);
    txt = (TextView) findViewById(R.id.txt);


    a.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
              txt.setVisibility(View.VISIBLE);
          }
    });

    }

}

答案 4 :(得分:-1)

试试吧

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

<Button
    android:id="@+id/a"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:text="A"
    />

<TextView
    android:id="@+id/txt"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/a"
    android:text="This is a test...."
    android:visibility="gone"
    />

<Button
    android:id="@+id/b"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/txt"
    android:layout_marginTop="5dp"
    android:text="B"
    />

并在您的代码中

TextView textView = (TextView) findViewById(R.id.txt);

   a.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
               textView.setVisibility(View.VISIBLE);

            }
        });