我有一个片段(v4支持库),它实现了MultiChoiceModeListener
接口。但是我已经在我的清单中定义了android:minSdkVersion="7"
。所以我的片段类向我显示错误:
Class requires API level 11 (current min is 7): android.widget.AbsListView.MultiChoiceModeListener
解决方法是使用@SuppressLint("NewApi")
。虽然该应用程序可以成功编译,但我猜这会导致应用程序在较旧的Android版本中崩溃。
那么有可能在较旧的Android版本中没有应用程序失败,同时仍然为新版本实现了MultiChoiceModeListener
接口吗?或者我需要在这些行上有两个不同版本的应用程序或片段?
答案 0 :(得分:0)
因此有可能在旧的Android版本中没有应用程序失败, 同时仍然实现了MultiChoiceModeListener接口 更新的版本?
MultiChoiceModeListener
是HoneyComb
(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(...);
}