在我的应用程序中,我希望用户通过编辑文本以文本的形式给出答案。因此,对于正确答案,我希望字母在打字时即时变为绿色(或红色表示不正确)。
例如,如果答案是 DOG,我希望当用户动态键入 DOG 时文本变为绿色。即使他键入的第一个字母是D,我也希望文本颜色为绿色。只有当用户的输入文本不正确时,我才希望它是红色的。键入时,文本颜色应即时更改。
创建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) {
}
});