2014-11-14 2 views
1

В моем приложении Android я извлекаю данные из базы данных mysql, сохраняя их в arraylist и отображая их в виде списка. Теперь я хочу сделать перкулярную строку жирным шрифтом, т. Е. Если в моем arraylist есть данные, вроде «Me: hello ..», то в listview он должен отображаться как «Me: hello ..». Здесь «Me:» будет первой строкой в ​​списке, но не знаю, в какой строке. Я не понимаю, как это сделать. Пожалуйста, помогите мне .. !!Как сделать часть текста полужирным шрифтом из arraylist в android

+0

Почему вы не сделать ваши объекты ArrayList удержания, которые содержат текст, который вы держать в виде строки, а затем ли они или нет полужирный как логическое ? – DreadHeadedDeveloper

+0

, создавая представление в вашем адаптере, вы можете сделать чек на значение элемента списка массива, если условие прошло, и соответственно сделать ваш текст полужирным. –

+0

или еще лучше, если (text.equals (me)) {// сделать полужирным} – DreadHeadedDeveloper

ответ

4

Try ниже код:

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)); 
} 
+0

Thanx для решения ... но он отображает Me: Привет – Ruchir

+0

@ user3519241 chech this link http://stackoverflow.com/questions/2116162/how-to-display-html-in-textview – duggu

+0

thanxx .... теперь работает..!!! :) :) – Ruchir

1

Попробуйте использовать пользовательские Funcation сделать часть текста, чтобы быть смелым:

Пример:

getTextWithBoldSection ("Me: привет .." ,"Меня:");

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; 
    } 
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; 
} 
} 
Смежные вопросы