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

startDrag method Deprecated and unable to compile the program

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

startDrag 最近已弃用 - 在 API 24 中。因此您可以改用 startDragAndDrop 并区分版本。

你也可以说保持对低版本的兼容性。问题是拖放是在 API 11 中引入的。因此您可以尝试区分版本:

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

否则如前所述,< API 11 没有官方拖放功能。对于 API 14 以下的 Android(或 API 15),因为根据 Android Studio,只有少数设备 运行 低于该版本,即只有 2.3%。

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

希望对您有所帮助!

根据 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(...);
}