如何将 RadioGroup 移动到指定的 EditText Android Dev下方

Posted

技术标签:

【中文标题】如何将 RadioGroup 移动到指定的 EditText Android Dev下方【英文标题】:How to move RadioGroup below specified EditText Android Dev 【发布时间】:2017-11-22 18:19:22 【问题描述】:

我正在学习 android 应用开发。我的问题是radioButtons 在我的editText1 和editText2 上。我梦见了这个订单:

    editText 与第一个数字 用第二个数字编辑文本 单选按钮 + 单选按钮 - 单选按钮 * 单选按钮/ 文本查看结果 按钮

第 (i+1) 个元素在第 i 个元素之下。

我想知道我应该怎么做,因为当我将 android:layout_below="@+id/editText2" 添加到 radioGroup 时,它没有任何作用。

    <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    tools:context="com.example.addme.calculator.MainActivity">

    <RelativeLayout
        android:layout_
        android:layout_>

        <EditText
            android:id="@+id/editText1"
            android:layout_
            android:layout_
            android:hint="first number"
            android:layout_alignParentTop="true"
            android:inputType="number" />

        <EditText
            android:id="@+id/editText2"
            android:layout_
            android:layout_
            android:layout_below="@+id/editText1"
            android:hint="second number"
            android:inputType="number" />

        <RadioGroup
            android:layout_
            android:layout_
            android:id="@+id/radioGroup">
            android:layout_below="@+id/editText2"
            <RadioButton
                android:id="@+id/radioPlus"
                android:layout_below="@+id/editText2"
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:checked="true"
                android:text="+" />

            <RadioButton
                android:layout_below="@+id/radioPlus"
                android:id="@+id/radioMinus"
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:text="-" />

            <RadioButton
                android:id="@+id/radioMult"
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:layout_below="@+id/radioMinus"
                android:text="*" />

            <RadioButton
                android:id="@+id/radioDiv"
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:text="/"
                android:layout_below="@+id/radioMult"
                android:layout_above="@+id/button" />

        </RadioGroup>

        <Button
            android:id="@+id/button"
            android:layout_
            android:layout_
            android:layout_below="@+id/textView"
            android:onClick="onButtonClick"
            android:text="Button"

            />

        <TextView
            android:id="@+id/textView"
            android:layout_
            android:layout_
            android:layout_below="@+id/radioGroup"
            android:text="Result" />



    </RelativeLayout>

</android.support.design.widget.CoordinatorLayout>

【问题讨论】:

使用android:layout_below 【参考方案1】:

在您的布局 xml 中,此属性 android:layout_below="@+id/editText2" 位于无线电组标记之外。检查一下

【讨论】:

谢谢,这是一个愚蠢的错误。现在一切正常。【参考方案2】:

您的 xml 在单选组中的 xml 中有错误:

android:layout_below="@+id/editText2"

改成下面这样:

    <RadioGroup
            android:layout_
            android:layout_
            android:id="@+id/radioGroup"
android:layout_below="@+id/editText2">

【讨论】:

【参考方案3】:

android:layout_below="@+id/editText2" 在无线电组标签之外。使用以下代码更改您的代码

    <RelativeLayout
    android:layout_
    android:layout_>

    <EditText
        android:id="@+id/editText1"
        android:layout_
        android:layout_
        android:layout_alignParentTop="true"
        android:hint="first number"
        android:inputType="number" />

    <EditText
        android:id="@+id/editText2"
        android:layout_
        android:layout_
        android:layout_below="@+id/editText1"
        android:hint="second number"
        android:inputType="number" />

    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_
        android:layout_
        android:layout_below="@+id/editText2">

        <RadioButton
            android:id="@+id/radioPlus"
            android:layout_
            android:layout_
            android:layout_below="@+id/editText2"
            android:layout_weight="1"
            android:checked="true"
            android:text="+" />

        <RadioButton
            android:id="@+id/radioMinus"
            android:layout_
            android:layout_
            android:layout_below="@+id/radioPlus"
            android:layout_weight="1"
            android:text="-" />

        <RadioButton
            android:id="@+id/radioMult"
            android:layout_
            android:layout_
            android:layout_below="@+id/radioMinus"
            android:layout_weight="1"
            android:text="*" />

        <RadioButton
            android:id="@+id/radioDiv"
            android:layout_
            android:layout_
            android:layout_above="@+id/button"
            android:layout_below="@+id/radioMult"
            android:layout_weight="1"
            android:text="/" />

    </RadioGroup>

    <Button
        android:id="@+id/button"
        android:layout_
        android:layout_
        android:layout_below="@+id/textView"
        android:onClick="onButtonClick"
        android:text="Button"

        />

    <TextView
        android:id="@+id/textView"
        android:layout_
        android:layout_
        android:layout_below="@+id/radioGroup"
        android:text="Result" />


</RelativeLayout>

【讨论】:

【参考方案4】:

试试这个,radioButtons 在 RadioGroup 中自动对齐

<RadioGroup
        android:layout_
        android:layout_
        android:id="@+id/radioGroup"
        android:layout_below="@+id/editText2">
        <RadioButton
            android:id="@+id/radioPlus"
            android:layout_
            android:layout_
            android:checked="true"
            android:text="+" />

        <RadioButton
            android:id="@+id/radioMinus"
            android:layout_
            android:layout_
            android:layout_weight="1"
            android:text="-" />

        <RadioButton
            android:id="@+id/radioMult"
            android:layout_
            android:layout_
            android:layout_weight="1"
            android:text="*" />

        <RadioButton
            android:id="@+id/radioDiv"
            android:layout_
            android:layout_
            android:layout_weight="1"
            android:text="/" />

    </RadioGroup>

【讨论】:

【参考方案5】:

你为什么还要使用RelativeLayout?您可以使用 LinearLayout(Vertical) 作为所有视图的容器。这是最简单的方法。

【讨论】:

以上是关于如何将 RadioGroup 移动到指定的 EditText Android Dev下方的主要内容,如果未能解决你的问题,请参考以下文章

如何将RadioGroup元素的ID转换为Android studio中的字符串?

EDI系统如何设置延迟处理数据?

如何使用 RadioButton 膨胀布局然后添加到 RadioGroup?

如何使用 extjs 4.2 更改 radiogroup 检查值的样式?

如何通过 EDI 将 Python 与 Amazon 连接起来?

Wicket 6 到 8 升级:RadioGroup.onSelectionChanged() 替换