2016-08-03 61 views
-1

RecyclerView_item.xml項目時單擊recyclerview透水項目單擊了作用,應去

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/overview_frag_txt_color" 
    android:padding="@dimen/dimen_2"> 

     <com.custom.SquareLayout 
      android:id="@+id/squareLayout" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:orientation="vertical"> 


      <CheckBox 
       android:id="@+id/chkbox" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:checked="true" 
       android:paddingRight="10dp" 
       android:layout_margin="@dimen/dimen_5"/ 

     </com.custom.SquareLayout> 

MainActivity.xml

<android.support.v7.widget.RecyclerView 
        android:id="@+id/addresslist" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:background="@color/overview_frag_txt_color" 
        android:divider="@android:color/transparent" 
        android:dividerHeight="10.0sp" 
        android:fillViewport="true" 
        android:padding="@dimen/dimen_5" 
        android:scrollbars="none" /> 

我有三個項目在我的recyclerview。當點擊第一項時,checkbox被選中,點擊第二項我想第一項的checkbox被取消選中

回答

0

你可以做什麼是onChecked事件存儲複選框的全局變量在數據集中檢查和呼叫notifydatasetchanged和onbindViewHolder()函數

public void onBindViewHolder(ViewHolder holder, int position) { 
    holder.checkBox.setChecked(selectedPostion==position); 
} 

位置在你viewHolder類

checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() 
{ 
    @Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
    { 
     if (isChecked) 
     { 
      selectedPostion = getAdapterPostion(); 
      notifydatasetChanged() 
     } 

    } 
}); 
+0

notifdatasetchanged在我的活動或其他?請你能詳細說明 –