2016-09-20 61 views
3

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

回答

17

根据机器人会API参考startDrag() API等级24

使用startDragAndDrop()被废弃了较新版本的平台。

而且由于Android API级别24等于Android的N,你就可以使用:

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

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.没有多大用处的实施它适用于Android 14以下的API(或API 15),因为根据Android Studio,只有少数设备在该版本以下运行,即只有2.3%。

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

希望这会有所帮助!