用户界面 - 如何在动态编辑文本中更改特定字符串的颜色?-人造人



在我的应用程序中,我希望用户通过编辑文本以文本的形式给出答案。因此,对于正确答案,我希望字母在打字时即时变为绿色(或红色表示不正确)。

例如,如果答案是 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) {
        }
    });

相关内容

  • 没有找到相关文章