簡體   English   中英

如何在不更改整個textview顏色的情況下更改文本顏色

[英]how to change text color without changing the the whole textview color

我試圖通過簡單地單擊按鈕來更改文本顏色,但是當我單擊按鈕時,它也會更改以前鍵入的文本顏色。 表示更改整個文本的顏色。 當我嘗試通過Spannable更改顏色時,它將更改文本所選部分的顏色,但不會更改我接下來要鍵入的文本的顏色。 有沒有一種方法可以單擊按鈕,它不會更改整個文本的顏色,而是會改變我接下來鍵入的顏色。 謝謝

在此處輸入圖片說明

這是我只知道的

redtxt.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View view) {
            str.setSpan(new ForegroundColorSpan(Color.parseColor(txtColor)),     selStart, selEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
               text.setTextColor(Color.parseColor("#d32f2f"));
       }
   });

您可以使用SpannableString例如:

final SpannableString text = new SpannableString("Hello stackOverflow");
text.setSpan(new RelativeSizeSpan(1.5f), text.length() - "stackOverflow".length(), text.length(),
            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
text.setSpan(new ForegroundColorSpan(Color.RED), 3, text.length() - 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(text);

將您的整個文本變成Spannable之類的

Spannable text = edittext.getText();

在那之后做。

if (edittext.getText().length() != 0){
     text.setSpan(new ForegroundColorSpan(YOUR_COLOR), selection_start, selection_end, 34);
}

您需要實現Spannable String builder(全局對象),並且在onChangeText事件上只需將跨越字符串附加到Spannable String builder。

    SpannableStringBuilder objSpannableStringBuilder;

edt.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
              final SpannableString text = new SpannableString(s.toString());
              text.setSpan(new ForegroundColorSpan(Color.RED), 3, text.length() - 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);                  objSpannableStringBuilder.append(text);
              your_edit_text.setText(objSpannableStringBuilder);

            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM