2013-05-03 4 views
1

У меня есть listview с двумя текстовыми полями и флажком. Я использую пользовательский адаптер для заполнения списка.Установите/снимите флажок внутри списка, программно?

Я хочу установить/снять флажок у определенного списка listview на основе позиции listitem. например: Если я хочу установить флажок второго элемента списка, как я могу это сделать?

+0

Вы получите позицию списка в методе getView вашего пользовательского адаптера. сделайте это там. –

+0

Как я могу вызвать метод getview из основного вида деятельности? –

+0

Попробуйте указанную ссылку http://stackoverflow.com/questions/6048339/android-listview-checkbox-checked-unintentionally – Amit

ответ

2

Вы должны сделать это в своем методе getview().

Пример кода из vogella

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
    View view = null; 
    if (convertView == null) { 
     LayoutInflater inflator = context.getLayoutInflater(); 
     view = inflator.inflate(R.layout.yourlayout, null); 
     final ViewHolder viewHolder = new ViewHolder(); 
     viewHolder.checkbox = (CheckBox) view.findViewById(R.id.check); 
     viewHolder.checkbox 
      .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 

      @Override 
      public void onCheckedChanged(CompoundButton buttonView, 
       boolean isChecked) { 
       Model element = (Model) viewHolder.checkbox 
        .getTag(); 
       element.setSelected(buttonView.isChecked()); 

      } 
      }); 
     view.setTag(viewHolder); 
     viewHolder.checkbox.setTag(list.get(position)); 
    } else { 
     view = convertView; 
     ((ViewHolder) view.getTag()).checkbox.setTag(list.get(position)); 
    } 
    ViewHolder holder = (ViewHolder) view.getTag(); 
    holder.checkbox.setChecked(list.get(position).isSelected()); 
    return view; 
    } 
} 

Более подробно см here.

Надеюсь, это поможет вам.

+0

Thnx для вашего ответа :), я использую один и тот же адаптер, но как я могу установить значения флажка из основного действия? –

+0

Вы только что установили свой флажок и продолжаете свою работу. Этот метод будет выполнять свою работу. – Gunaseelan

+0

Я хочу проверить свой флажок на экране. Вместо этого я хочу установить флажок в программе. Я хочу, чтобы флажок был автоматически проверен после определенного условия. –

Смежные вопросы