startDrag方法已弃用且无法编译程序

时间:2016-09-20 14:33:07

标签: java android deprecated

startDrag(android.content.ClipData, android.view.View.DragShadowBuilder, java.lang.Object, int)已弃用。如何解决这个问题而不失去与旧版本的兼容性?还有其他选择吗?我正在学习机器人基础知识,在尝试简单的拖放操作时,我遇到了这个错误。

2 个答案:

答案 0 :(得分:22)

根据Androids API参考startDrag()在API级别24中已弃用

startDragAndDrop()用于较新的平台版本。

由于Android API等级24等于Android N,您可以使用:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    view.startDragAndDrop(...);
} else {
    view.startDrag(...);
}

答案 1 :(得分:4)

startDrag最近被弃用 - 在API 24中。因此,您可以使用startDragAndDrop来区分版本。

您还可以说保留与较低版本的兼容性。事情是Drag& Drop在API 11中引入。所以你可以尝试区分版本:

if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
    //MyDragEventListener comes in here
}

否则如上所述,没有正式拖拽和掉落的< API 11.在API 14(或API 15)下实现Android的功能并不多,因为根据Android Studio,只有少数设备在该版本下运行,即只有2.3%。

如果您仍然坚持这样做,您可以使用第三方库,例如Android-DragArea。

希望这有帮助!