[英]How to show a Toast “after” DragListener has finished
在我的应用中,将3张图片拖放到3个布局中。
在其中三个被放到适当位置后,我试图向他们敬酒。
此刻,吐司出现在每个人之后
到目前为止,这是我的代码
@Override
public boolean onDrag(View v, DragEvent e) {
int action = e.getAction();
View view = (View) e.getLocalState();
switch (action) {
case DragEvent.ACTION_DRAG_STARTED:
return true;
case DragEvent.ACTION_DRAG_ENTERED:
return false;
case DragEvent.ACTION_DRAG_EXITED:
Toast.makeText(getActivity(), "Finished", Toast.LENGTH_SHORT).show();
// return false;
case DragEvent.ACTION_DROP:
if (view.getId() == R.id.topPiece && v.getId() == R.id.topContainer) {
ViewGroup owner = (ViewGroup) view.getParent();
owner.removeView(view);
LinearLayout container = (LinearLayout) v;
container.addView(view);
view.setVisibility(View.VISIBLE);
view.setOnTouchListener(null);
view.setOnDragListener(null);
}
if (view.getId() == R.id.middlePiece
&& v.getId() == R.id.middleContainer) {
ViewGroup owner = (ViewGroup) view.getParent();
owner.removeView(view);
LinearLayout container = (LinearLayout) v;
container.addView(view);
view.setVisibility(View.VISIBLE);
view.setOnTouchListener(null);
view.setOnDragListener(null);
}
if (view.getId() == R.id.bottomPiece
&& v.getId() == R.id.bottomContainer) {
ViewGroup owner = (ViewGroup) view.getParent();
owner.removeView(view);
LinearLayout container = (LinearLayout) v;
container.addView(view);
view.setVisibility(View.VISIBLE);
view.setOnTouchListener(null);
view.setOnDragListener(null);
}
case DragEvent.ACTION_DRAG_ENDED:
if (dropEventNotHandled(e)) {
view.setVisibility(View.VISIBLE);
}
}
return false;
}
private boolean dropEventNotHandled(DragEvent e) {
// TODO Auto-generated method stub
return !e.getResult();
}
简单方法:
用户计数器:在顶部:
int numDragged = 0;
//....
//in your listener:
numDragg++;
if(numDragged>=3) {
numDragged = 0;
//show toast...
}
在DragEvent.ACTION_DROP:的情况下,如果顶部,中间和底部块的条件在其中设置一个标志,则在这些条件之后检查所有三个条件是否都为真,如果是,则显示吐司
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.