2017-01-12 5 views
0

で他の画像を選択したときに一つの画像の選択を解除する方法をユーザーがAndroidのスタジオで他の画像を選択したときに、以前に選択した画像の選択を解除する方法 ユーザーはアンドロイドスタジオここ

holder.tvTreatmentArea.setOnClickListener(new View.OnClickListener() { 
 
      @Override 
 
      public void onClick(View v) { 
 

 
       selectedAreasList[position] = !selectedAreasList[position]; 
 

 
       if (selectedAreasList[position]) { 
 
        holder.layoutTreatmentAreas.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.background_circular_selected)); 
 
        holder.tvTreatmentArea.setTextColor(context.getResources().getColor(R.color.white)); 
 
        holder.imgTreatmentSelectedStatus.setImageResource(R.drawable.ic_check_circle_black_24_px); 
 
        if (mCallbacks != null) { 
 
         mCallbacks.onButtonClicked(treatmentAreasList.get(position).getPrice(), "Added", treatmentAreasList.get(position).getArea()); 
 
        } 
 
       } else { 
 
        holder.layoutTreatmentAreas.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.background_circular)); 
 
        holder.tvTreatmentArea.setTextColor(context.getResources().getColor(R.color.treatment_clinic_header)); 
 
        holder.imgTreatmentSelectedStatus.setImageResource(R.drawable.oval); 
 
        if (mCallbacks != null) { 
 
         mCallbacks.onButtonClicked(treatmentAreasList.get(position).getPrice(), "Removed", treatmentAreasList.get(position).getArea()); 
 
        } 
 
       } 
 
      } 
 
     });
選択

のコードです。私はリサイクルビューを使用しています。イメージを膨らませ、1つのイメージを選択し、もう1つのイメージを選択解除します。以前に選択した画像の参照をリサイクラビューで保存することは可能ですか?

+0

YourAdapter{ int selectedPosition = -1; onBindView(...,..,int postion){ if(postion==selectedPosition){ update the background or button for this position } onClick(){ selectedPosition = getAdapterPosition(); notifyDataSetChanged(); } } } 
あなたは()notifyDataSetChangedを呼び出し、選択された画像の位置を記憶してもよいです。 、画像選択のコードを投稿してください –

答えて

0

getAdapterPosition()で特定の画像をクリックした後で現在選択されている位置を保存するだけで、後でnotifiydatastchangedを使用して新しく選択した画像を更新するだけで済みます。

bindviewでは、そのためのロジックを記述する必要があります。

ラフ例:

+0

あなたは答えを具体的に教えてください。 – sanket

+0

@sanket私は自分の答えを更新しました。 – Spartan

+0

imgv.setTag()メソッドとimagv.getTab()メソッドを使用して、どちらがクリックかを取得できます –

関連する問題