1
1
package co .paulburke .android .itemtouchhelperdemo ;
2
2
3
3
import android .graphics .Color ;
4
+ import android .support .v4 .view .MotionEventCompat ;
4
5
import android .support .v7 .widget .RecyclerView ;
5
6
import android .view .LayoutInflater ;
7
+ import android .view .MotionEvent ;
6
8
import android .view .View ;
7
9
import android .view .ViewGroup ;
10
+ import android .widget .ImageView ;
8
11
import android .widget .TextView ;
9
12
10
13
import java .util .ArrayList ;
@@ -24,9 +27,16 @@ public class RecyclerListAdapter extends RecyclerView.Adapter<RecyclerListAdapte
24
27
"One" , "Two" , "Three" , "Four" , "Five" , "Six" , "Seven" , "Eight" , "Nine" , "Ten"
25
28
};
26
29
30
+ public interface OnDragStartListener {
31
+ void onDragStarted (RecyclerView .ViewHolder viewHolder );
32
+ }
33
+
27
34
private final List <String > mItems = new ArrayList <>();
28
35
29
- public RecyclerListAdapter () {
36
+ private final OnDragStartListener mDragStartListener ;
37
+
38
+ public RecyclerListAdapter (OnDragStartListener dragStartListener ) {
39
+ mDragStartListener = dragStartListener ;
30
40
mItems .addAll (Arrays .asList (STRINGS ));
31
41
}
32
42
@@ -40,6 +50,15 @@ public ItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
40
50
@ Override
41
51
public void onBindViewHolder (final ItemViewHolder holder , int position ) {
42
52
holder .textView .setText (mItems .get (position ));
53
+ holder .handleView .setOnTouchListener (new View .OnTouchListener () {
54
+ @ Override
55
+ public boolean onTouch (View v , MotionEvent event ) {
56
+ if (MotionEventCompat .getActionMasked (event ) == MotionEvent .ACTION_DOWN ) {
57
+ mDragStartListener .onDragStarted (holder );
58
+ }
59
+ return false ;
60
+ }
61
+ });
43
62
}
44
63
45
64
@ Override
@@ -64,10 +83,12 @@ public static class ItemViewHolder extends RecyclerView.ViewHolder implements
64
83
ItemTouchHelperViewHolder {
65
84
66
85
public final TextView textView ;
86
+ public final ImageView handleView ;
67
87
68
88
public ItemViewHolder (View itemView ) {
69
89
super (itemView );
70
- textView = (TextView ) itemView ;
90
+ textView = (TextView ) itemView .findViewById (R .id .text );
91
+ handleView = (ImageView ) itemView .findViewById (R .id .handle );
71
92
}
72
93
73
94
@ Override
0 commit comments