在我的应用中,我希望用户通过编辑文本以文本形式提供答案。因此,对于正确的答案,我希望在打字时,这些字母会在运行时变为绿色(或红色表示不正确)。
例如,如果答案是DOG,如果用户动态键入DOG,我希望文本变为绿色。即使他输入的第一个字母是D,我也希望文字颜色为绿色。只有当用户的输入文本不正确时,我才希望它是红色的。文字颜色应该在打字时随时改变。
答案 0 :(得分:0)
创建EditText
并致电addTextChangedListener,为其提供自定义TextWatcher
,您最需要覆盖其onTextChanged
。
在此方法中,根据您的逻辑更改文本颜色。
快照:
mEditBox = (EditText) findViewById(R.id.my_edit_box_id);
mEditBox.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
String currentText = mEditBox.getText().toString();
// highligt correct answer in green
if ("DOG".startsWith(currentText)) { // user starts typing "DOG"
mEditBox.setTextColor(Color.GREEN);
} else {
mEditBox.setTextColor(Color.RED); // incorrect input
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});