我们可以在同一个EditText中编写彩色文本吗?

时间:2017-01-01 14:43:07

标签: android android-edittext

我使用Android Studio。我想在同一EditText中写下彩色文字,如下图所示。我研究过,但我什么都没发现。任何人都可以帮助我吗?

示例输出如下。

photo

这是我的代码。 anaM_LV_BG_text是一个列表视图 name_title和content是edittext renk_koduları_string_text是一个包含html颜色的数组

private void registerClickCallBack_text(){         anaM_LV_BG_renk_text.setOnItemClickListener(new AdapterView.OnItemClickListener(){

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(DisplayNote.this, position + 1 + " . seçildi", Toast.LENGTH_SHORT).show();
            name_title.setTextColor(Color.parseColor(renk_koduları_string_text[position]));
            content.setTextColor(Color.parseColor(renk_koduları_string_text[position]));
           SharedPreferences preferences_text = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
            SharedPreferences.Editor editor_text = preferences_text.edit();

            String color_text= renk_koduları_string_text[position];
            editor_text.putString("MyColorText",color_text);
            editor_text.commit();

        }
    });
}

2 个答案:

答案 0 :(得分:5)

使用SpannableString

EditText editText = (EditText)findViewById(R.id.my_edit_text);

Spannable spannable = new SpannableString("This is a wonderful day");        
spannable.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spannable.setSpan(new ForegroundColorSpan(Color.RED), 5, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
editText.setText(spannable);

答案 1 :(得分:0)

您需要做的就是创建一个带有“ html标记”的字符串,当您将其集成到EditText时,只需使用此方法:Html.fromHtml()。< / p>

示例:

String strData =  "<b>Hi</b> <i>I am</i> programmer"</br>
myEditText.setText(Html.fromHtml(strData));