簡體   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