繁体   English   中英

多色EditText

[英]EditText in multi-color

我正在开发一个Android应用程序。

现在,我想将用户输入的内容输入到EditText中。 我想以黑色显示最后一个句号之后的文本,以红色显示最后一个句号之前的文本。

例如,如果用户在EditText中键入以下句子:

'my name is john.I am from India.I Love Android'

我想用黑色显示“我爱Android”,用红色显示句子的第一部分。

有什么办法吗?

使用SpannableString将属性应用于文本。 您可能想在这里阅读博客条目: http : //www.chrisumbel.com/article/android_textview_rich_text_spannablestring

通过以下方式收听文本更改:

    editText.addTextChangedListener(new TextWatcher() { 
        public void afterTextChanged(Editable s) { 
            if (!colorHasSet) {
                makeColorText();
            }
            colorHasSet = false;
        }
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
        public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
    });   

然后使用WebnetMobile链接到的教程声明一个为文本着色的函数。

public void makeColorText() {
     SpannableString ss = new SpannableString(textEdit.getText());
    // customize ss here
    // ...
    colorHasSet = true;
    editText.setText(ss);
}

标志boolean变量colorHasSet应该定义为防止stackOverflowException。

这不是具有即时彩色文本的完整的所见即所得(WYSIWYG)编辑器,您应该做一些破解使其完整并适合您的需求,这些工作完全由您自己完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM