2017-01-27 13 views
0

こんにちは私はカスタムアダプターでRecyclerViewを使用しています。アイテムをクリックしたときに他のアイテムを変更するにはどうすればいいですか?ここでは、onBindViewHolderの私の変更イメージビューコードです。私はクロックイメージリソースを変更します。悪い英語のため申し訳ありませんRecyclerViewでイメージビューを変更する方法androidのリフレッシュアダプタ

vi.btn_transfer.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      // ActiveTransferItem(); 

      for(int i = 0; i< positionLists.size(); i++) 
      { 
       if(positionLists.get(i).getLastActionTime().equals("") || positionLists.get(i).getLastActionTime().equals("null")) 
       { 
        AppEngine.check_transfer_image = true; 
        vi.img_gpstracking.setBackgroundResource(R.drawable.greencircle); 
        notifyItemChanged(i); 
       } 
      } 


      ((PositionListNewVersion)mContext).getTransferPopUp().setVisibility(View.VISIBLE); 
     } 
    }); 

​​

+1

使用 'viewholder.getAdapterPosition()'の代わりに 'i'のループ –

+0

のために削除するには、例を喜ばもらえますか?。私は時計の画像を変更するので、2行目以外はすべて – gkhngngr

+0

あなたの要件をクリアしてください – Anil

答えて

0

あなたのリサイクル業者のビューに項目のタッチリスナーを追加するには、このクラスを使用します。

public class RecyclerTouchListener implements RecyclerView.OnItemTouchListener { 

private GestureDetector gestureDetector; 
private ClickListener clickListener; 

public interface ClickListener { 
    void onClick(View view, int position); 
} 

public RecyclerTouchListener(Context context, final ClickListener clickListener) { 
    this.clickListener = clickListener; 
    gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { 
     @Override 
     public boolean onSingleTapUp(MotionEvent e) { 
      return true; 
     } 
    }); 
} 

@Override 
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { 

    View child = rv.findChildViewUnder(e.getX(), e.getY()); 
    if (child != null && clickListener != null && gestureDetector.onTouchEvent(e)) { 
     clickListener.onClick(child, rv.getChildAdapterPosition(child)); 
    } 
    return false; 
} 

@Override 
public void onTouchEvent(RecyclerView rv, MotionEvent e) { 
} 

@Override 
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { 

} 
}  

そうすることによって、あなたのリサイクル業者ビューにこのリスナーを追加します。

recyclerView.addOnItemTouchListener(new RecyclerTouchListener(context, new RecyclerTouchListener.ClickListener() { 
      @Override 
      public void onClick(View view, int position) { 
       //Code here to transform the image. 
      } 
     })); 
関連する問題