2017-11-09 16 views
0

의 선택한 항목의 배경색을 변경할 수 없습니다. 내가 선택한 항목의 수를 계산할 수 있습니다. 나는이 코드를 시도내가 <code>recyclerview</code>에서 선택한 항목을 강조하려는 재활용

image로 강조 표시를 .....합니다.

 recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(this, recyclerView, new RecyclerItemClickListener.OnItemClickListener() { 
     @Override 
     public void onItemClick(View view, int position) { 
      if (isMultiSelect) { 
       multi_select(position); 
       selectedPositon = position; 
      } else{ 
       Toast.makeText(getApplicationContext(), "Details Page", Toast.LENGTH_SHORT).show(); 
       } 

      if (selectedPositon == position) { 
       view.setBackgroundColor(Color.parseColor("#e2a49e")); 
      } else { 
       view.setBackgroundColor(Color.parseColor("#f5f5f5")); 
      } 
     } 

     @Override 
     public void onItemLongClick(View view, int position) { 
      if (!isMultiSelect) { 
       selected_list = new ArrayList<AlertListItem>(); 
       isMultiSelect = true; 
       selectedPositon = position; 
       if (mActionMode == null) { 
        mActionMode = startActionMode(mActionModeCallback); 
       } 
      } 

      if (selectedPositon == position) { 
       view.setBackgroundColor(Color.parseColor("#e2a49e")); 
      } else { 
       view.setBackgroundColor(Color.parseColor("#f5f5f5")); 
      } 
      multi_select(position); 
     } 
    })); 
} 

누군가 나를 도울 수 있습니까?

+0

죄송 – Ironman

+0

, 내가 안드로이드에 새로운 오전 .. 전체 바인딩 코드를보기 코드 아래 사용을 사용할 수 bindup 코드가 의미하는 무슨 ...? [recyclerview에서 선택한 항목의 배경색을 변경]의 –

+3

가능한 중복 (https://stackoverflow.com/questions/40692214/changing-background-color-of-selected-item-in-recyclerview) – Sreyas

답변

0
  if (btn.getBackground().getConstantState().equals(itemView.getResources().getDrawable(R.drawable.understand_clicked).getConstantState())) { 
       btn.setBackground(itemView.getResources().getDrawable(R.drawable.understand_not_clicked));   

     } else { 
       btn.setBackground(itemView.getResources().getDrawable(R.drawable.understand_clicked));     
      } 

이 코드를 View holder 클래스의 사용자 지정 recyclerviewadapter에 추가하십시오. 이미지의 현재 상태에 대한 에게 getConstantState를 사용합니다. 선택한 Raw의 색상을 변경할 수도 있습니다.

0

당신은

public void onBindViewHolder(final ViewHolder holder, final int position) { 
     holder.textView.setText(array[position]); 

     holder.row_linearlayout.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       index=position; 
       notifyDataSetChanged(); 
      } 
     }); 
     if(index==position){ 
      holder.layout.setBackgroundColor(Color.parseColor("#ff8569")); 
      holder.textView.setTextColor(Color.parseColor("#ffffff")); 
     } 
     else 
     { 
      holder.layout.setBackgroundColor(Color.parseColor("#ffffff")); 
      holder.textView.setTextColor(Color.parseColor("#000000")); 
     } 

    } 

HolderClass이

public class ViewHolder extends RecyclerView.ViewHolder { 
     private TextView textView; 
     LinearLayout layout; 
     RecyclerView recyclerView; 

     public ViewHolder(final View itemView) { 
      super(itemView); 
      textView=(TextView)itemView.findViewById(R.id.textView1); 
      layout=(LinearLayout)itemView.findViewById(R.id.layouot_linear); 
      recyclerView=(RecyclerView)itemView.findViewById(R.id.recycler); 
     } 
    }