2016-07-25 3 views
1

У меня проблема. Я устанавливаю флажок с setChecked, True и False, но я не знаю, почему это вообще не работает. Сначала мне нужно вызвать holder.textView. потому что на моем айкикатоне чекбокс виден, но не может быть сфокусирован. когда я делаю что-то код, как это (работу), но когда я Тринг, чтобы сделать некоторые сослагательное наклонение() для ручки проверяемой/бесконтрольно все не работают:Флажок по применению для телевизора в RecyclerView

case SETTINGS_CHANNELS: 
      holder.checkBox.setVisibility(View.VISIBLE); 
      holder.title.setText(((List<LiveTvChannel>) list).get(position).getTitle()); 
      holder.title.requestFocus(); 

      holder.title.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        holder.checkBox.setChecked(true); 
       } 
      }); 

      break; 

Так я попробовать что-то вроде этого. Сначала я вызываю метод onClick для TexxtView и next i call checkbox. Но это не сработало. Any1 может помочь?

switch (posit) { 
     case SETTINGS_CHANNELS: 
      holder.checkBox.setVisibility(View.VISIBLE); 
      holder.title.setText(((List<LiveTvChannel>) list).get(position).getTitle()); 
      holder.title.requestFocus(); 

      holder.title.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
         @Override 
         public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
          if(!isChecked){ 
           holder.checkBox.setChecked(true); 
          }else{ 
           holder.checkBox.setChecked(false); 
          } 
         } 
        }); 
       } 
      }); 

      break; 
+1

чек [это] (HTTP: //stackoverflow.com/a/38526646/3117966) – Nisarg

+0

спасибо за ссылку, но это не работает для меня – Rodriquez

+0

, какую ошибку вы получаете? – Nisarg

ответ

1

Возьмите одну булево в классе модели:

private boolean isCheck; 

public boolean isCheck() { 
    return isCheck; 
} 

public void setCheck(boolean check) { 
    isCheck = check; 
} 

В классе адаптера:

private CompoundButton.OnCheckedChangeListener checkedListener = new CompoundButton.OnCheckedChangeListener() {      
         @Override 
         public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
          // TODO Auto-generated method stub 
         int getPosition = (Integer) v.getTag(); // Here we get the position that we have set for the checkbox using setTag. 
         boolean flag= list.get(getPosition).isCheck(); 
         for (int i = 0; i < list.size(); i++) { 
         if (getPosition == i) { 
         list.get(getPosition).setCheck(true); 
         } else { 
         list.get(getPosition).setCheck(false); 
         } 
         } 

        notifyDataSetChanged(); 
        });; 

В onBindViewHolder адаптера:

@Override 
public void onBindViewHolder(final ViewHolder holder, final int position) { 
    holder.checkbox.setOnCheckedChangeListener(null); 
    holder.checkbox.setChecked(movieItems.get(position).isCheck()); 
    holder.checkbox.setOnCheckedChangeListener(checkedListener); 
} 
Смежные вопросы