在我的Android应用程序中,我从mysql数据库中检索数据,将它们存储在arraylist中并在listview中显示它们。现在我想制作一个粗体字符串,即如果在我的arraylist中,那里有类似的数据,"我:你好......"然后在listview中它应显示为" 我:你好.." 。在这里" 我:"将是列表中的第一个字符串,但不知道在哪一行。我不知道该怎么做。请有人帮帮我.. !!
答案 0 :(得分:4)
尝试以下代码:
if(array.get(i).contain("Me")){
String value = array.get(i).split(":")[0];
String value1 = array.get(i).split(":")[1];
String main_value = "<b>"+value +":</b> "+ value1;
txt.setText( Html.fromHtml(main_value));
}
答案 1 :(得分:1)
尝试使用自定义功能将文本部分设为粗体:
示例:
getTextWithBoldSection(&#34;我:你好......&#34;,&#34;我:&#34;);
public SpannableStringBuilder getTextWithBoldSection(String fulltext, String boldText){
SpannableStringBuilder builder=new SpannableStringBuilder();
if(boldText.length() > 0 && !boldText.trim().equals("")){
int startingIndex = fulltext.indexOf(boldText);
int endingIndex = startingIndex + boldText.length();
if(startingIndex < 0 || endingIndex <0){
return builder.append(fulltext);
}
else if(startingIndex >= 0 && endingIndex >=0){
builder.append(fulltext);
builder.setSpan(new StyleSpan(Typeface.BOLD), startingIndex, endingIndex, 0);
}
}else{
return builder.append(fulltext);
}
return builder;
}
答案 2 :(得分:1)
尝试使用下面提到的代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView mTV = (TextView) findViewById(R.id.tv);
String mString = "Me: hello..";
mTV.setText(boldText(mString,0,2));
}
private Spannable boldText(String mText, int mStart, int mEnd) {
Spannable WordtoSpan = new SpannableString(mText);
WordtoSpan.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), mStart, mEnd,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return WordtoSpan;
}
}