我在我的适配器中有这个代码:
class CustomListView2 extends BaseAdapter {
private ArrayList<ListItem> listData;
private LayoutInflater layoutInflater;
private Context context;
int hasil;
public CustomListView2(Context context, ArrayList<ListItem> listData) {
this.listData = listData;
layoutInflater = LayoutInflater.from(context);
this.context = context;
}
@Override
public int getCount() {
return listData.size();
}
@Override
public Object getItem(int position) {
return listData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.history_listview, null);
holder = new ViewHolder();
holder.no_order = (TextView) convertView.findViewById(R.id.no_order);
holder.status_order = (TextView) convertView.findViewById(R.id.status_order);
holder.tgl_antar = (TextView) convertView.findViewById(R.id.tgl_antar);
holder.check_order = (CheckBox) convertView.findViewById(R.id.chkBatal);
holder.layoutHistory = (LinearLayout) convertView.findViewById(R.id.layoutHistory);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
if (mapStatus.containsKey(position))
{
holder.status_order.setPaintFlags(holder.status_order.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
holder.status_order.setEnabled(true);
}
我在全局变量中声明了这个:
Map<Integer,String> mapStatus = new HashMap<Integer,String>();
根据我在HashMap中放置的位置,使文本视图加下划线是什么意思。
但是在滚动列表视图后,其他文本视图也会加下划线。
如何解决这个问题?
答案 0 :(得分:0)
这是因为您的观看者正在重复使用您的观点。
尝试使用相反的操作添加else
条件,删除下划线:
holder.status_order.setPaintFlags(holder.status_order.getPaintFlags() & !Paint.UNDERLINE_TEXT_FLAG);
不确定&
是否像这样使用。
答案 1 :(得分:0)
使用SpannableString:
String mystring= mapStatus.getValue().toString();
SpannableString content = new SpannableString(mystring);
content.setSpan(new UnderlineSpan(), 0, mystring.length(), 0);
yourtextview.setText(content);