2016-10-31 4 views
0

У меня есть этот код в моем адаптере:Подчеркнутый TextView в ListView

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>(); 

Что им прикрепление только сделать TextView получение подчеркнуты на основе позицию, которую я положил в HashMap.

Но после прокрутки списка, другое текстовое изображение также подчеркивается.

Как это исправить?

ответ

0

Это потому, что ваш держатель изображения повторно использует ваш вид. Попробуйте добавить else условно с противоположной операции, удалить подчеркивание:

holder.status_order.setPaintFlags(holder.status_order.getPaintFlags() & !Paint.UNDERLINE_TEXT_FLAG); 

Не уверен, что если & используется, как это.

0

Использование SpannableString:

String mystring= mapStatus.getValue().toString(); 
SpannableString content = new SpannableString(mystring); 
content.setSpan(new UnderlineSpan(), 0, mystring.length(), 0); 
yourtextview.setText(content); 
Смежные вопросы