MultiChoiceModeListener支持早于11的Android API版本

时间:2014-06-07 05:41:47

标签: android android-support-library

我有一个片段(v4支持库),它实现了MultiChoiceModeListener接口。但是我已经在我的清单中定义了android:minSdkVersion="7"。所以我的片段类向我显示错误:

Class requires API level 11 (current min is 7): android.widget.AbsListView.MultiChoiceModeListener

解决方法是使用@SuppressLint("NewApi")。虽然该应用程序可以成功编译,但我猜这会导致应用程序在较旧的Android版本中崩溃。

那么有可能在较旧的Android版本中没有应用程序失败,同时仍然为新版本实现了MultiChoiceModeListener接口吗?或者我需要在这些行上有两个不同版本的应用程序或片段?

1 个答案:

答案 0 :(得分:0)

  

因此有可能在旧的Android版本中没有应用程序失败,   同时仍然实现了MultiChoiceModeListener接口   更新的版本?

MultiChoiceModeListenerHoneyComb(API级别11)与ActionBar API一起引入的类。不幸的是,与ActionBar不同,这个类在支持库中没有对应的功能,可以在较低版本的android上提供它的功能。您有两个选择,您可以删除功能,也可以在不支持它的较低版本上提供类似的实现。

要删除较低版本的功能,您只需要一个if子句包装您设置侦听器的代码:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    // we are on HoneyComb or above so its safe to use
    listView.setMultichoiceModeListener(...);
}