【问题标题】:Android TextWatcher when check radioButton检查radioButton时的Android TextWatcher
【发布时间】:2013-12-16 08:43:34
【问题描述】:

我正在使用 TextWatcher 来更改 EditText 的文本颜色。 我有 2 个单选按钮,我希望在选择单选按钮时颜色会改变。例如,如果我点击 radio1,文本应该变成红色,但是如果我点击 radio2,颜色应该是绿色。如何将Listner 调用为radioButton? 这是我的 TextWatcher:

TextWatcher watcher= new TextWatcher() {
            public void afterTextChanged(Editable s) { 
                if (mRadioGroup.getCheckedRadioButtonId() == R.id.radio1) {
                    mIm.setTextColor(Color.parseColor("#228b22"));
                }
                else {
                    mIm.setTextColor(Color.parseColor("#FF0000"));
                }

            }
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                                    }
                };
        mIm.addTextChangedListener(watcher);

【问题讨论】:

    标签: android colors textwatcher


    【解决方案1】:

    我不确定你为什么在这里使用TextWatcher。您需要的是onCheckedChangeListener,并像现在一样更改onCheckedChange() 中的文本颜色。

    mRadioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
        @Override
        public void onCheckedChange(RadioGroup group, int id)
        {
             switch (id)
             {
                 case (R.id.radio1):
                   mIm.setTextColor(Color.parseColor("#228b22"));
                   break;
                 default:
                 mIm.setTextColor(Color.parseColor("#FF0000"));
             }
       }
    });
    

    【讨论】:

    • 虽然我已经输入了代码nell'onCreate(),但是只有在点击了RadioButton之后才会改变文本颜色。启动是默认颜色,而不是选中的收音机。谢谢
    • 是的,在您点击RadioButton 之前它不会改变。您可以签入onCreate(),如果您想使用类似RadioButton rbtn = findViewById(); if (rbtn.isChecked) { mIm.setTextColor(blah);`
    【解决方案2】:

    TextWatcher 用于查看文本字段。您需要处理按钮的 onClick 。像这样的:

      @Override
      public void onClick (View v) 
      {
        switch (v.getId())
        {
          case R.id.red_text:
            mIm.setTextColor (Color....);
            break;
          case R.id.green_text:
            mIm.setTextColor (Color....);
            break;
        }
      }
    

    不要忘记为单选按钮设置 OnClickHandler。

    【讨论】:

      猜你喜欢
      • 2012-01-06
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      • 2013-06-17
      相关资源
      最近更新 更多