2016-07-21 9 views
0

私はアプリケーションをコーディングしていますが、警官の色は変わらない点を除いて、ビューホルダーにスパン可能な文字列を取得しようとしています。 どこが間違っていますか? おかげ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

大丈夫、私は 私のミスではなく、我々はケース誰にspannable内容でCONCATするTextutilsなどを使用する必要があり、スパンのための連結を使用していた...自分で自分の答えを見つけたが、私は私のポスト不思議に思われるでしょうコード:

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; 


} 
関連する問題