[英]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.