如何从EditText文本更改中更改TextView的背景?

时间:2015-05-21 11:09:30

标签: android colors background android-edittext textview

我正在使用Fragment类,我想更改文本视图的颜色在我的编辑文本上更改文本时。在EditText中更改文本时,有哪些方法可以更改TextView的背景颜色。我的代码如下所示:

public class Fragment_AboutUs extends android.app.Fragment {
    TextView about_btn_call_customer;
    TextView about_btn_Submit;
    EditText about_feedback;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.layout_fragment_about_us, container, false);
        //reference section
        about_btn_call_customer= (TextView) rootView.findViewById(R.id.about_btn_call_customer);
        about_btn_Submit=(TextView)rootView.findViewById(R.id.about_btn_Submit);
        about_feedback=(EditText)rootView.findViewById(R.id.about_feedback);
        return rootView;
    }
}

任何形式的帮助都将受到赞赏。

5 个答案:

答案 0 :(得分:1)

像这样使用TextWatcher:

TextWatcher textWatcher = new TextWatcher() {
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {}

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

    @Override
    public void afterTextChanged(Editable s) {
        textView.setTextColor(Color.parseColor("#..."));
    }
};

editText.addTextChangedListener(textWatcher);

注意:您也可以使用textView.setTextColor(getResources().getColor(R.color.mycolor))

答案 1 :(得分:1)

我的解决方案是@GuiihE代码的一点修改。 尝试这个解决方案,它将根据您的要求工作:

TextWatcher textWatcher = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}

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

@Override
public void afterTextChanged(Editable s) {
    about_btn_Submit.setBackgroundColor(Color.parseColor("#9CCC65"));
}

};

editText.addTextChangedListener(textWatcher);

答案 2 :(得分:0)

TextChangedListener添加到EditText,如下所示:

about_feedback.addTextChangedListener(new TextWatcher(){
    public void afterTextChanged(Editable s) {
        // do what ever you want to TextView
    }
    public void beforeTextChanged(CharSequence s, int start, int count, int after){}
    public void onTextChanged(CharSequence s, int start, int before, int count){}
}); 

答案 3 :(得分:0)

您可以使用TextWatcher

例如:

EditText about_feedback= (EditText)findViewById(R.id.medittext);
about_feedback.addTextChangedListener(new TextWatcher() {

    @Override
    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub

    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {

        doSomething();



    } 

});

你可以使用

about_btn_Submit.setTextColor(Color.parseColor("#FFFFFF"));

更改TextView

的颜色

所以,

在您的代码中,请在onTextChanged()中执行此操作,即

public void onTextChanged(CharSequence s, int start, int before, int count) {
     about_btn_Submit.setTextColor(Color.parseColor("#FFFFFF"));
} 

答案 4 :(得分:0)

谢谢大家的回答@GuiLhe i跟着你的回答,我想改变TextView的背景颜色,所以我写了

about_btn_Submit.setBackgroundColor(Color.parseColor("#9CCC65"));

而不是

textView.setTextColor(Color.parseColor("#9CCC65"));

再次感谢您