如何使用EditText为所有(日期:)字词设置样式? 如果说内容是:
textView.setText("Date : " + obj.getDate() + "\n" + "Date : " + obj2.getDate());
我确实理解我们可以将某个样式从一个索引操作到Textview中包含的String的另一个索引。此代码给出的示例仅更改一个单词。
并非所有(日期:)字词都已更改:
TextView textView = (TextView)findViewById( R.id.TextView );
Spannable spannable = (Spannable)textView.getText();
StyleSpan boldSpan = new StyleSpan( Typeface.BOLD );
spannable.setSpan( boldSpan, 0, 6, Spannable.SPAN_INCLUSIVE_INCLUSIVE );
及其布局(XML)中声明的重要参数 spannable :
<TextView android:layout_width="fill_parent" android:id="@+id/TextView"
android:bufferType="spannable" android:layout_height="wrap_content"
android:text="@string/hello" />
如何为所有(日期:)字词设置一个样式,而不是使用EditText?
答案 0 :(得分:0)
您可以使用SpannableString
连接[TextUtils.concat(Charsequence ...)][1]
,如下所示:
SpannableString span1 = new SpannableString(Date :);
SpannableString span2 = new SpannableString(obj.getDate());
span1.setSpan(new ForegroundColorSpan(Color.BLUE), 0, span1.length() -1, 0))
span2.setSpan(new ForegroundColorSpan(Color.RED), 0, span1.length() -1, 0))
mTextView.setText(TextUtils.concat(span1," " ,span2));
Havn没有尝试过代码,但它应该非常直接:
TextView textView = (TextView)findViewById( R.id.TextView );
SpannableString date = new SpannableString("Date: ");
StyleSpan boldSpan = new StyleSpan( Typeface.BOLD );
spannable.setSpan(boldSpan, 0, span1.length() -1, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
textView.setText(TextUtils.concat(date, obj.getDate(), "/n", date, obj2.getDate()));
答案 1 :(得分:0)
创建一些帮助函数来格式化你的日期,比如
public static CharSequence getDateString(Date date){
Spannable text = new SpannableString("Date : "+ date.toString());
StyleSpan boldSpan = new StyleSpan(Typeface.BOLD);
text.setSpan(boldSpan,0,text.length(),Spannable.SPAN_INCLUSIVE_INCLUSIVE);
return text;
}
然后使用TextUtils连接文本,然后设置
tv.setText(TextUtils.concat(tv.getText(), getDateString(new Date()),"\n", new Date().toString()));