2015-11-12 2 views
0

Я использую флажок Material Design library от navasmdc.Флажок отменяется автоматически

Когда фрагмент с флажком загружен флажок получает проверены (Thats правильно), но затем он сразу же получает непроверенный (это не то, что я хочу)

Я поставил его в пункт просмотра утилизатор. Так что я установить флажок внутри onBindViewHolder так:

@Override 
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 

     ReviewItem current = data.get(position); 

     switch (holder.getItemViewType()) { 

      case TYPE_SIMPLE: 
       ViewHolderSimple simpleViewHolder = (ViewHolderSimple) holder; 

       simpleViewHolder.title.setText(current.getTitle()); 
       simpleViewHolder.subtitle.setText("Wert: " + valuesOfMaschine.get(position)); 

       simpleViewHolder.image.setImageResource(R.drawable.ic_starticon); 

       if(Integer.parseInt(valuesOfMaschine.get(position)) == 0) 
       { 
        //simpleViewHolder.checkbox.setChecked(false); 
       } else if(Integer.parseInt(valuesOfMaschine.get(position)) == 1){ 
        simpleViewHolder.checkbox.setChecked(true); 
       } 

       break; 

      case TYPE_DETAILED: 
       ViewHolderDetailed detailedViewHolder = (ViewHolderDetailed) holder; 

       detailedViewHolder.title.setText(current.getTitle()); 
       detailedViewHolder.subtitle.setText("Wert: " + valuesOfMaschine.get(position)); 

       detailedViewHolder.image.setImageResource(R.drawable.ic_starticon); 

       detailedViewHolder.slider.setValue(Integer.parseInt(valuesOfMaschine.get(position))); 

       break; 
     } 
    } 

Я не вижу никакой роли в моем коде, который должен быть в состоянии снимите флажок снова ...

XML, мой флажок:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:materialdesign="http://schemas.android.com/apk/res-auto" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        > 
        <com.gc.materialdesign.views.CheckBox 
         android:id="@+id/review_item_checkbox_simple" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:background="#1E88E5" 
         /> 

       </RelativeLayout> 

Пропустить что-нибудь?

ответ

0

вы можете использовать этот

внутри onBindViewHolder

simpleViewHolder.checkbox.setTag(position); 
simpleViewHolder.checkbox.setOnClickListener(new CheckBoxListener(position)); 
simpleViewHolder.checkbox.setClickable(true); 

создать класс для clicklistener

class CheckBoxListener implements View.OnClickListener { 

     int position; 

     CheckBoxListener(int position) { 
      this.position = position; 
     } 

     public void onClick(View v) { 


      boolean isChecked = ((CheckBox) v).isChecked(); 
      ((CheckBox) v).setChecked(!isChecked); 


      if (((CheckBox) v).isChecked()) { 
       // update checked value in the list 
      } else { 
       // update unchecked value in the list 
      } 
      notifyDataSetChanged(); 
     } 


    } 
+0

Я скопировал свой код в шахту, и я не получаю никакого обратного вызова. Я все еще скучаю? – jublikon

+0

Тот же код работает со мной – bond007

+0

Хорошо, я получил его работу. Это была моя ошибка. Мне нужно обновить внутри базы данных, когда я получаю onclick внутри фрагмента, который содержит recyclerview. Как можно использовать данные updatet в узле просмотра внутри фрагмента для обновления базы данных? – jublikon

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