Java 拖放布局中的定位
我这里有一些关于拖放的问题。我已经为拖放创建了代码,它工作得很好。但问题是,正如你在下面的图片中所看到的,每个罐子只能装4个糖果,但是当我把糖果从第二个罐子拖到第一个罐子时,它仍然可以被扔进去。我怎样才能使每个罐子只能装四颗糖果呢 这是我为拖放所做的编码。我应该在这个代码中的某个地方使用if-else语句来解决我的问题吗Java 拖放布局中的定位,java,drag-and-drop,awt,Java,Drag And Drop,Awt,我这里有一些关于拖放的问题。我已经为拖放创建了代码,它工作得很好。但问题是,正如你在下面的图片中所看到的,每个罐子只能装4个糖果,但是当我把糖果从第二个罐子拖到第一个罐子时,它仍然可以被扔进去。我怎样才能使每个罐子只能装四颗糖果呢 这是我为拖放所做的编码。我应该在这个代码中的某个地方使用if-else语句来解决我的问题吗 public boolean onDrag(View v, DragEvent event) { int action = event.getAction(); V
public boolean onDrag(View v, DragEvent event) {
int action = event.getAction();
View view = (View) event.getLocalState();
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
// Do nothing
break;
case DragEvent.ACTION_DRAG_ENTERED:
v.setBackgroundDrawable(normalShape);
break;
case DragEvent.ACTION_DRAG_EXITED:
v.setBackgroundDrawable(normalShape);
break;
case DragEvent.ACTION_DROP:
// Dropped, reassign View to ViewGroup
ViewGroup owner = (ViewGroup) view.getParent();
owner.removeView(view);
LinearLayout container = (LinearLayout) v;
container.addView(view);
view.setVisibility(View.VISIBLE);
break;
case DragEvent.ACTION_DRAG_ENDED:
//v.setBackgroundDrawable(normalShape);
if (dropEventNotHandled(event))
{
view.setVisibility(View.VISIBLE);
}
break;
default:
break;
}
return true;
}
private boolean dropEventNotHandled(DragEvent event) {
// TODO Auto-generated method stub
return !event.getResult();
}
}
}
在case DragEvent.ACTION\u DRAG\u end块中,您应该检查jar中是否有空间,如果没有,则返回false以使drop操作失败。如何检查jar中是否有空间?我们无法告诉您,因为我们看不到其余的代码。。。您需要在程序中查找糖果分配给罐子的位置。这些糖果已经在罐子中了。您想看一下xml代码吗?我认为您最好多读一点,这样您就可以理解您的源代码。要更快地获得更好的帮助,请发布一篇文章。