【问题标题】:Changing EditText based on user choice根据用户选择更改 EditText
【发布时间】:2021-06-19 06:50:24
【问题描述】:

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

【问题讨论】:

  • 在此处发布您的代码

标签: android kotlin android-edittext


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    尝试以下代码正常工作。

         //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
                }
            }
        }
      }
     }
    

    【讨论】:

      猜你喜欢
      • 2010-10-30
      • 1970-01-01
      • 2021-07-07
      • 1970-01-01
      • 2020-05-12
      • 2016-10-04
      • 1970-01-01
      • 2014-07-06
      • 2022-11-23
      相关资源
      最近更新 更多