@Override public void onBindViewHolder(final ItemViewHolder holder, final int position) { Log.d(TAG, "onBindViewHolder "); Item item = mItems.get(position); String message; switch (item.getState()) { case Item.STATE.LEFT: { message = "swiped left"; break; } case Item.STATE.RIGHT: { message = "swiped right"; break; } default: { message = "not swiped"; break; } } String text = item.getText() + " " + message; holder.offerTitle.setText(text); if (views[position] == null) views[position] = holder.itemView; // holder.itemView.setOnTouchListener(new View.OnTouchListener() { // @Override // public boolean onTouch(View v, MotionEvent event) { // views[position] = holder.itemView; // return false; // } // }); }
@Override public void onItemMove(int fromPosition, int toPosition) { Log.d(TAG, "onItemMove "); int state = mItems.get(fromPosition).getState(); String prev = mItems.remove(fromPosition).getText(); Item item = new Item(prev); item.setState(state); mItems.add(toPosition > fromPosition ? toPosition - 1 : toPosition, item); notifyItemMoved(fromPosition, toPosition); }
@Override public void onItemSwiped(int position, boolean isSwipedLeft) { Log.d(TAG, "onItemSwiped "); Item item = mItems.get(position); if (isSwipedLeft) { item.onSwipeLeft(); } else { item.onSwipeRight(); } // if (views[position] != null) { // setAnimation(views[position], position); // views[position] = null; // } notifyDataSetChanged(); }