Establecer una matriz de cadenas en negrita en Android
Tengo un ListView donde me las arreglé para mostrar muchos textos en él. Algunos de los textos están formateados como BOLD . Con el fin de hacer que los textos en negrita, he utilizado Spannable y funciona! Sin embargo, cuando me desplazo hacia abajo y hacia arriba de nuevo, el índice [0] va múltiple.
Para evitar esa escena, utilicé un soporte para mantener mis TextViews. Me las arreglé para resolver ese problema en el desplazamiento, pero por algunas razones, el textstyle que es BOLD, ido en mi ListView. ¿Cómo puedo hacer eso?
- La mejor manera de obtener una SpannableString de un SpannableStringBuilder
- ¿Hay alguna manera de insertar un ImageSpan en un TextView sin interrumpir el texto?
- El primer setSpan no funcionó
- Cadena spannable para Android con espaciado de líneas
- Establecer una fuente y un color diferentes a parte de un TextView
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; } }; }
Class ViewHolder
private class ViewHolder { TextView tv; TextView tv_2; }
- ¿Cómo alinear el texto tanto a la izquierda como a la derecha de una línea TextView?
- Cómo cambiar dinámicamente el tamaño del texto en Android
- Alinear mapa de bits en SpannableStringBuilder
- Las extensiones de vínculo se pierden de la conversión de ListView
- Alineación de ImageSpan en la parte superior del TextView
- Ajuste de la alineación del texto mediante SpannableString
- Establecer arrastrar audiencia en SpannableString
- Cómo hacer que RelativeSizeSpan se alinee a la parte superior
// try this class CustomAdapter extends ArrayAdapter<String>{ private Context context; private String[] source; public CustomAdapter(Context context, String[] source) { super(context,R.layout.items,source); this.context = context; this.source = source; } @Override public int getCount() { return source.length; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if(convertView==null){ convertView = LayoutInflater.from(context).inflate(R.layout.items,null); holder = new ViewHolder(); holder.tv = (TextView) convertView.findViewById(R.id.lbl_item); convertView.setTag(holder); }else{ holder = (ViewHolder)convertView.getTag(); } if(position==0){ final SpannableString out0 = new SpannableString(source[position]); StyleSpan boldSpan = new StyleSpan(Typeface.BOLD); out0.setSpan(boldSpan, 6, 17, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); holder.tv.setText(out0); }else if(position==2){ final SpannableString out2 = new SpannableString(source[position]); StyleSpan boldSpan = new StyleSpan(Typeface.BOLD); out2.setSpan(boldSpan, 0, 8, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); holder.tv.setText(out2); }else{ holder.tv.setText(source[position]); } convertView.setTag(holder); return convertView; } private class ViewHolder { TextView tv; } }