我正在编写一个应用程序,只是尝试在viewholder.My代码中获得一个可跨转的字符串,只是警察的颜色不会改变。我哪里错了?谢谢
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;
}
}发布于 2016-07-21 21:12:22
好吧,我自己找到了答案……我的错误是为span使用了concat,相反,我们必须使用Textutils来与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;
}https://stackoverflow.com/questions/38501507
复制相似问题