如何在android中的arraylist中使文本的一部分变为粗体

时间:2014-11-14 05:52:47

标签: java android mysql listview arraylist

在我的Android应用程序中,我从mysql数据库中检索数据,将它们存储在arraylist中并在listview中显示它们。现在我想制作一个粗体字符串,即如果在我的arraylist中,那里有类似的数据,"我:你好......"然后在listview中它应显示为" 我:你好.." 。在这里" 我:"将是列表中的第一个字符串,但不知道在哪一行。我不知道该怎么做。请有人帮帮我.. !!

3 个答案:

答案 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;
}
}