【问题标题】:Changing textHint of an EditText depending on which radioButton is checked?根据选中的单选按钮更改 EditText 的 textHint?
【发布时间】:2014-07-06 13:51:16
【问题描述】:

我不确定这是否可能,但如果可以,我将不胜感激您的帮助!我需要根据选中的单选按钮更改 textHint。例如,如果选中 US radioButton,我希望 editText 提示显示“Miles”;当检查RadioButton度量标准时,我希望曲折号显示“公里”。

我多次尝试解决这个问题,但总是失败。

坦克提前!

【问题讨论】:

    标签: android android-edittext radio-button oncheckedchanged ischecked


    【解决方案1】:

    您可以在 EditText 上使用setHint(hint); 来更改提示。 您可以在单选按钮上使用侦听器来检测何时选择了一个。

    【讨论】:

    • 我看到了你的回答,很好。
    • 感谢您这么快回来。我试图在活动的 .java 中设置提示,但我无法让它工作。我应该在 radioButton 的 .XML 中添加什么内容。我应该做一个 radioroup 监听器还是 radioButton?
    • 您的 XML 文件只需要在 EditText 和 RadioGoup 上指定 ID。您需要的侦听器是 OnCheckedChangeListener,您必须将它应用到 RadioGroup。就像@Lal 说的那样。 :)
    【解决方案2】:
    RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup1); 
    radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
         public void onCheckedChanged(RadioGroup group, int checkedId) { 
             // checkedId is the RadioButton selected 
            switch (checkedId) {
                case R.id.radioButtonUS:
                     Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_LONG).show(); 
                      Distance.setHint("Miles");
                      break; 
                case R.id.radioButtonMetric: 
                      Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_LONG).show(); 
                     Distance.setHint("Kilometers"); 
                      break; 
            } 
          } 
     });
    

    【讨论】:

    • RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup1); radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(RadioGroup group, int checkedId) { // checkedId 是 RadioButton 选择的开关 (checkedId) { case R.id.radioButtonUS: if (US.isChecked()) US.setHint ("Miles"); break; case R.id.radioButtonMetric: if (Metric.isChecked()) Metric.setHint("Kilometers"); break; } } });这就是我在 .Java 中的内容。当我运行它时它什么也没做。
    • RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup1); radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(RadioGroup group, int checkedId) { // checkedId 是 RadioButton 选择的开关 (checkedId) { case R.id.radioButtonUS: if (US.isChecked()) Distance.setHint ("Miles"); break; case R.id.radioButtonMetric: if (Metric.isChecked()) Distance.setHint("Kilometers"); break; } } });这就是我在 .Java 中的内容。当我运行它时它什么也没做。
    • 不,它没有用。我忘了在 if (选中)下添加propper editText,但它仍然不起作用。
    • 在每个 case 中设置一个 Toast 并检查选择单选按钮时是否显示 toast,..
    • 对不起!它没有用。但我要试试 if(checked)
    猜你喜欢
    • 1970-01-01
    • 2018-03-24
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2021-04-03
    相关资源
    最近更新 更多