【发布时间】:2014-01-27 11:35:29
【问题描述】:
我有一个网格视图,我设置了一个包含图像视图数组列表的适配器。我想从网格视图中拖动一个项目并将其放入另一个布局中。我面临的问题是如何将触摸侦听器设置为网格视图的单个项目,以便我可以将其放在目标中。如果我在网格视图中设置 ontouchlistener,它会选择整个网格视图而不是单个项目。请帮我............... 我试过这段代码:
gridview.setOnItemClickListener(new MyOnItemClickListener());
gridview.setOnDragListener(new MyOnDragListener());
private final class MyTouchListener implements OnTouchListener {
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
ClipData data = ClipData.newPlainText("", "");
DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
view.startDrag(data, shadowBuilder, view, 0);
return true;
} else {
return false;
}
}
final class MyOnDragListener implements OnDragListener{
Drawable enterShape = getResources().getDrawable(R.drawable.shape_droptarget);
Drawable historyDrawer;
@Override
public boolean onDrag(View v, DragEvent event) {
LocalLogger.LOGGER.info("Under on drag listener");
switch(event.getAction()){
case DragEvent.ACTION_DRAG_STARTED:
break;
case DragEvent.ACTION_DRAG_ENTERED:
historyDrawer=v.getBackground();
v.setBackground(enterShape);
break;
case DragEvent.ACTION_DRAG_EXITED:
v.setBackground(historyDrawer);
break;
case DragEvent.ACTION_DROP:
break;
case DragEvent.ACTION_DRAG_ENDED:
break;
}
return false;
}
}
【问题讨论】:
标签: android gridview drag-and-drop