根据用户选择更改 EditText

时间:2021-06-19 06:50:24

标签: android kotlin android-edittext

我的应用中有一个表格,要求用户输入他/她的身高和体重。有两个英制和公制单位的单选按钮。当用户在无线电组中选择英制时,我想显示一个高度编辑文本(米),为公制选择两个编辑文本(英尺 + 英寸)。我该如何实施?

2 个答案:

答案 0 :(得分:0)

同时使用编辑文本(以米为单位)和(以英尺-英寸为单位),其中一个有 android:visibility="gone"

当用户选择公制时,隐藏另一个编辑文本并显示编辑文本(英尺 + 英寸),当用户选择英制时,隐藏另一个并显示高度编辑文本(米)...

答案 1 :(得分:-1)

尝试使用以下代码正常工作。

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


<RadioGroup
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/radioGroup1">

    <RadioButton
        android:id="@+id/imperial"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Imperial" />

    <RadioButton
        android:id="@+id/metric"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Metric" />
</RadioGroup>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="30dp"
    android:orientation="vertical">

    <EditText
        android:id="@+id/height_et"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone"
        android:hint="Input height" />

    <EditText
        android:id="@+id/feet_et"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone"
        android:layout_marginTop="20dp"
        android:hint="Input Feet" />

    <EditText
        android:id="@+id/inches_et"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone"
        android:layout_marginTop="10dp"
        android:hint="Input Inches" />
 </LinearLayout>
 </LinearLayout>


//activity code
class TestActivity : AppCompatActivity() {
private lateinit var heightEdt: EditText
private lateinit var feetEdt: EditText
private lateinit var inchesEdt: EditText
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_test)
    heightEdt = findViewById(R.id.height_et)
    feetEdt = findViewById(R.id.feet_et)
    inchesEdt = findViewById(R.id.inches_et)
    val rg = findViewById<View>(R.id.radioGroup1) as RadioGroup
    rg.setOnCheckedChangeListener { group, checkedId ->
        when (checkedId) {
            R.id.imperial -> {
                heightEdt.isVisible = true
                feetEdt.isVisible = false
                inchesEdt.isVisible = false
            }
            R.id.metric -> {
                heightEdt.isVisible = false
                feetEdt.isVisible = true
                inchesEdt.isVisible = true
            }
        }
    }
  }
 }
相关问题