2016-08-17 2 views
0

RecyclerView에 관한 Big Nerd Ranch tutorial on RecyclerView 자습서를 따르고 있습니다. 나는 몇 가지를 바꿨다. 내가 직면하고있는 문제는 내가 행을 클릭하면; 그 특정한 것은 강조하게하게하게된다, 그렇지만 나는 다른 '선택되지 않은 열'을 볼 수 없다. 행 선택하기 전에 RecyclerView에서 CardView의 행 강조 표시

: enter image description here

은 행 enter image description here

의 선택 나는 홀더에 내 클릭을 구현하고있다.

public class CustomRecyclerViewHolder extends SwappingHolder implements View.OnClickListener, View.OnLongClickListener { 

     private TextView mMsg1, mMsg2; 
     //private ImageView mAvatarView; 
     private CheckBox mCheckBox; 
     private LinearLayout checkboxHolder; 
     private ImageView mDeleteRow; 
     private CardView cardView; 
     private Category category; 
     private CustomRecyclerViewHolder holder; 

     public CustomRecyclerViewHolder(View itemView) { 
      super(itemView, myFragment.mMultiSelector); 
      mMsg1 = (TextView) itemView.findViewById(R.id.text_view1); 
      mMsg2 = (TextView) itemView.findViewById(R.id.text_view2); 
      //mAvatarView = (ImageView)itemView.findViewById(R.id.avatar_holder); 
      mCheckBox = (CheckBox) itemView.findViewById(R.id.checkbox); 
      checkboxHolder = (LinearLayout) itemView.findViewById(R.id.checkbox_holder); 
      mDeleteRow = (ImageView) itemView.findViewById(R.id.delete_row); 
      cardView = (CardView) itemView.findViewById(R.id.card_holder); 
      itemView.setOnClickListener(this); 
      itemView.setLongClickable(true); 
      itemView.setOnLongClickListener(this); 
     } 

     public void bindCategory(Category category) { 
      this.category = category; 
      mMsg1.setText(category.getName()); 
      mMsg2.setText(category.getDescriptionName()); 
      if (category.getCompleted() == 1) { 
       mCheckBox.setChecked(true); 
       mCheckBox.setVisibility(View.VISIBLE); 
      } else 
       mCheckBox.setChecked(true); 
     } 

     @Override 
     public void onClick(View v) { 

      if (category == null) { 
       return; 
      } 
      checkboxHolder.setVisibility(View.VISIBLE); 
      mCheckBox.setChecked(isChecked); 
      if (!myFragment.mMultiSelector.tapSelection(this)) { 
       //selectCrime(mCrime); 
      } 

     } 

     @Override 
     public boolean onLongClick(View v) { 

      ((AppCompatActivity) mContext).startSupportActionMode(myFragment.mDeleteMode); 
      myFragment.mMultiSelector.setSelected(this, true); 
      return true; 
     } 
    } 

그리고 나의 조각에 내가 이렇게 :

public class CustomMultiSelectorCallback extends ModalMultiSelectorCallback { 

     public CustomMultiSelectorCallback(MultiSelector multiSelector) { 
      super(multiSelector); 
     } 

     @Override 
     public boolean onCreateActionMode(ActionMode actionMode, Menu menu) { 
      super.onCreateActionMode(actionMode, menu); 
      actionMode.getMenuInflater().inflate(R.menu.list_item_delete, menu); 
      return true; 
     } 

     @Override 
     public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) { 

      switch (menuItem.getItemId()) { 
       case R.id.menu_item_delete: 
       { 

        for (int i = categoriesArrayList.size(); i >= 0; i--) { 
         if (mMultiSelector.isSelected(i, 0)) { 
          categoryDatabase = new CategoryDatabase(context); 
          Category category = prescriptionsArrayList.get(i); 
          categoryDatabase.deleteCategory(category); 
          categoryRecyclerView.getAdapter().notifyItemRemoved(i); 
         } 
        } 


        categoriesArrayList.clear(); 
        mMultiSelector.clearSelections(); 
        actionMode.finish(); 
        return true; 

       } 
      } 
      return false; 
     } 
    } 
+0

가능한 중복 : http://stackoverflow.com/questions/38829808/recyclerview-on-click-highlight-and-make-others

아마 소스 코드를 확인하여 관심의 무언가를 찾을 수 있습니다 -not-highlighted/38831493 # 38831493 – JCDecary

+0

아니, 나는 그렇게 생각하지 않는다. 위에서 언급 한 튜토리얼에서 사용 된 라이브러리에만 적용됩니다. –

답변