EditText onChangeListener函数Android

Si8*_*Si8 3 java android android-edittext

我有以下代码:

nameOfInf.setOnFocusChangeListener(new OnFocusChangeListener() {
    if (strTollAmount.length() > 0) {
        nameOfInf.setBackgroundColor(getResources().getColor(android.R.color.white));
        nameOfInf.setTextColor(getResources().getColor(android.R.color.black));
    }
});
tollAmount.setOnFocusChangeListener(new OnFocusChangeListener() {
    if (strInfName.length() > 0) {
        tollAmount.setBackgroundColor(getResources().getColor(android.R.color.white));
        tollAmount.setTextColor(getResources().getColor(android.R.color.black));
    }
});
Run Code Online (Sandbox Code Playgroud)

该函数检查文本框上的值是否为空或null.因此,如果用户在文本框中输入内容,则背景和前景颜色应该更改.但那并没有发生.知道怎么编辑吗?

Tro*_*omB 9

我认为你正在寻找的是TextWatcher(尽管onFocusChanged可能有用,但这是另一种方法).这是示例代码:

TextWatcher watcher= new TextWatcher() {
        public void afterTextChanged(Editable s) { 
            if (TextBox1.getText().toString().equals("")) {
                 TextBox1.setBackgroundColor(getResources().getColor(android.R.color.white));
                 TextBox1.setTextColor(getResources().getColor(android.R.color.black));
            }

        }
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
              //Do something or nothing.                
        }
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            //Do something or nothing
        }
    };

    TextBox1.addTextChangedListener(watcher);
Run Code Online (Sandbox Code Playgroud)

您还需要使用字符串比较.equals().