Mam ListView, na którym udało mi się wyświetlić wiele tekstów. Niektóre teksty są sformatowane jako BOLD. Aby uczynić te teksty odważnymi, użyłem Spannable i to działa! Jednak po przewinięciu go w dół i wznowieniu indeks [0] jest wielokrotny.Ustaw tablicę ciągów na pogrubioną czcionkę w systemie Android
Aby uniknąć tej sceny, użyłem posiadacza do przechowywania moich widoków tekstowych. Udało mi się rozwiązać ten problem podczas przewijania, ale z jakiegoś powodu styl tekstu, który jest BOLD, zniknął w moim ListView. Jak mogę to zrobić?
MainActivity.java
private void populateListView() {
String[] source = { "Lorem ipsum dolor sit amet", "consectetuer adipiscing elit",
"sed diam nonummy nibh " };
final SpannableString out0 = new SpannableString(source[0]);
final SpannableString out2 = new SpannableString(source[2]);
StyleSpan boldSpan = new StyleSpan(Typeface.BOLD);
out0.setSpan(boldSpan, 6, 17, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
out2.setSpan(boldSpan, 0, 8, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.items, // Layout to use (create)
source) { // Items to be displayed
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
try {
viewHolder.tv = (TextView) lv_procedures.getChildAt(0)
.findViewById(R.id.lbl_item);
viewHolder.tv_2 = (TextView) lv_procedures.getChildAt(2)
.findViewById(R.id.lbl_item);
viewHolder.tv.setText(out0);
viewHolder.tv_2.setText(out2);
} catch (Exception e) {
e.printStackTrace();
}
return v;
}
};
}
Klasa ViewHolder
private class ViewHolder {
TextView tv;
TextView tv_2;
}
wysłać xml dla elementu listy – Triode