2016-07-21 6 views
0

Я кодирую приложение и просто пытаюсь получить spannable строку в viewholder.My код работает, за исключением того, что цвет полиции не меняется. Где я могу пойти не так? Благодаряandroid spannable viewholder

public class MyListAdapter extends ArrayAdapter<String[]>{ 

int groupid; 
List<String[]> items; 
Context context; 
String test; 

public MyListAdapter(Context context, int vg, int id, List<String[]> items){ 
    super(context,vg, id, items); 
    this.context=context; 
    groupid=vg; 
    this.items=items; 
} 
static class ViewHolder { 
    public TextView textid; 

    //public TextView textname; 
    //public TextView txtadresse; 

} 
public View getView(final int position, View convertView, ViewGroup parent) { 

    View rowView = convertView; 
    if(rowView==null){ 
     LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     rowView= inflater.inflate(groupid, parent, false); 
     ViewHolder viewHolder = new ViewHolder(); 
     viewHolder.textid = (TextView) rowView.findViewById(R.id.txtid); 

     rowView.setTag(viewHolder); 
    } 

    // Fill data 
    ViewHolder holder = (ViewHolder) rowView.getTag(); 
    String[] row=items.get(position); 
    test = row[0].toString(); 
    Spannable pouf = new SpannableString(test); 
    pouf.setSpan(new ForegroundColorSpan(Color.RED),0,5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

    holder.textid.setText(pouf+" - "+row[1]+"\n"+row[2]); 
    rowView.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      String[] record = items.get(position); 


      Intent intent=new Intent(context, Main3Activity.class); 
      intent.putExtra("numéro", record[0]); 
      intent.putExtra("localite", record[1]); 
      intent.putExtra("adresse", record[2]); 
      context.startActivity(intent); 
     } 

    }); 
    return rowView; 


} 
} 

ответ

0

хорошо я узнал мой ответ сам ... Моя ошибка заключалась в использовании CONCAT для пролета, вместо этого мы должны использовать Textutils для Concat с spannable содержание в случае кто-нибудь будет интересно, я отправляю мой код:

public class MyListAdapter extends ArrayAdapter<String[]>{ 

int groupid; 
List<String[]> items; 
Context context; 
String test; 
String test2; 
String test3; 

public MyListAdapter(Context context, int vg, int id, List<String[]> items){ 
    super(context,vg, id, items); 
    this.context=context; 
    groupid=vg; 
    this.items=items; 
} 
static class ViewHolder { 
    public TextView textid; 


} 
public View getView(final int position, View convertView, ViewGroup parent) { 

    View rowView = convertView; 
    if(rowView==null){ 
     LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     rowView= inflater.inflate(groupid, parent, false); 
     ViewHolder viewHolder = new ViewHolder(); 
     viewHolder.textid = (TextView) rowView.findViewById(R.id.txtid); 

     rowView.setTag(viewHolder); 
    } 

    // Fill data 
    ViewHolder holder = (ViewHolder) rowView.getTag(); 
    String[] row=items.get(position); 
    test = row[0].toString(); 
    test2 = row[1].toString(); 
    test3 = row[2].toString(); 
    SpannableString pouf = new SpannableString(test); 
    pouf.setSpan(new RelativeSizeSpan(1.5f), 0, pouf.length(), 0); 
    SpannableString pouf2 = new SpannableString(test2); 
    pouf2.setSpan(new RelativeSizeSpan(1.5f), 0, pouf2.length(), 0); 
    SpannableString pouf3 = new SpannableString(test3); 
    pouf3.setSpan(new RelativeSizeSpan(1f), 0, pouf3.length(), 0); 


    holder.textid.setText(TextUtils.concat(pouf," - ",pouf2,"\n",pouf3)); 
    rowView.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      String[] record = items.get(position); 


      Intent intent=new Intent(context, Main3Activity.class); 
      intent.putExtra("numéro", record[0]); 
      intent.putExtra("localite", record[1]); 
      intent.putExtra("adresse", record[2]); 
      context.startActivity(intent); 
     } 

    }); 
    return rowView; 


} 
Смежные вопросы