startDrag方法已过时,无法编译该程序

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

根据Androids API参考,在API级别24中不推荐使用startDrag()

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

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

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

startDrag最近被弃用 – 在API 24中。所以你可以使用startDragAndDrop来区分版本。

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

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

否则如上所述,

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

希望这可以帮助!