0

Я хочу реализовать свой onItemSelected, чтобы при щелчке пользователем пометить его как «checked» , а затем обновить столбец DBContract.EntryColumns.IS_CHECKED для проверки (установите его на 1). Все работает нормально, но проблема в том, что я не знаю, как реализовать метод onItemSelected. Пожалуйста, кто-нибудь покажет мне, как это исправить.checkbox Как реализовать - android recyclerview

Вот моя деятельность и list_item_book.xml, где определен CheckBox.

public class MainActivity extends AppCompatActivity implements 
     BookAdapter.OnItemClickListener, 
     View.OnClickListener { 

    private BookAdapter mAdapter; 
    private CheckBox mCheckBox; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mAdapter = new BookAdapter(null); 
     mAdapter.setOnItemClickListener(this); 

     RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view); 
     recyclerView.setAdapter(mAdapter); 
     recyclerView.setLayoutManager(new LinearLayoutManager(this)); 

    } 


    /* This method will be called when I Click on checkboxes */ 
    @Override 
    public void onItemSelected(boolean active, int position) { 

     //what should I write here? 

     // DBContract.EntryColumns.IS_CHECKED 

    // 

    } 
} 

//list_item_book.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingEnd="@dimen/activity_horizontal_margin" 
    android:paddingStart="@dimen/activity_horizontal_margin"> 

    <CheckBox 
     android:id="@+id/checkbox" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    /> 

</RelativeLayout> 

ответ

0

Вы можете отобразить флажки идентификаторов и хранить его к карте < Checkbox, Integer >. А затем просто установите прослушиватель на флажках. (Предполагается, что checkbox имеет значение Checkbox)

CompoundButton.OnCheckedChangeListener listener = new CompoundButton.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      if (isChecked) { 
       // Get the ID here 
       int id = yourMapCheckboxToId.get(buttonView); 
       // ... do what you are going to do having ID 
      } 
     } 
    }; 
checkbox.setOnCheckedChangeListener(listener);