【发布时间】:2012-08-16 00:16:15
【问题描述】:
我有一个自定义 mime 类型,我打算用它在应用程序中拖放应用程序对象。这似乎有效,但我发现 EditText 字段也接受了放置操作。我不希望这种情况发生。
首先,我定义了这样的自定义 mime 类型:
public static final String MIME_TYPE_MYNODE = "com.example.mockup/mynode";
然后,在我拥有的源对象的 onTouch 处理程序中:
@Override
//-----------------------------------------------------------------------------
public boolean onTouch (View v, MotionEvent e)
{
...
else if (e.getAction() == MotionEvent.ACTION_MOVE)
{
String[] mimeTypes = {MIME_TYPE_MYNODE};
ClipData data = new ClipData ("Task Tamer Note", mimeTypes, new ClipData.Item ("unused"));
View.DragShadowBuilder shadow = new View.DragShadowBuilder(this);
Object localState = v;
startDrag (data, shadow, localState, 0);
return false;
}
}
...
}
当我“放下”一个 EditText 小部件时,它会将“未使用”插入到文本区域中。我怎样才能防止这种情况? 谢谢。
【问题讨论】:
-
你找到答案了吗?
-
还没有。我一直让它坐下来,希望我能偶然发现一些东西或得到回应:)
-
有任何解决方案吗?遇到同样的问题,想不出解决办法。
-
我做了什么:首先,我为edittext的父视图实现了拖动事件,并在第一次调用时为
edittextenabled、focusable和active设置到false,然后,神奇的事情发生了——edittext第一次收到drop,下一次都没有收到。会是什么?
标签: android drag-and-drop android-edittext mime-types