首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android spannable viewholder

android spannable viewholder
EN

Stack Overflow用户
提问于 2016-07-21 18:19:01
回答 1查看 213关注 0票数 0

我正在编写一个应用程序,只是尝试在viewholder.My代码中获得一个可跨转的字符串,只是警察的颜色不会改变。我哪里错了?谢谢

代码语言:javascript
复制
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;


}
}
EN

回答 1

Stack Overflow用户

发布于 2016-07-21 21:12:22

好吧,我自己找到了答案……我的错误是为span使用了concat,相反,我们必须使用Textutils来与spannable内容连接,以防有人会怀疑我发布了我的代码:

代码语言:javascript
复制
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;


}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38501507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档