1

当我设置android:minSdkVersion="8"时,下面的代码无法运行,系统提示我设置android:minSdkVersion="11" 我设置了android:minSdkVersion="10",但是代码可以正常运行,为什么? 谢谢!

lv.setOnItemClickListener(new OnItemClickListener(){
   @Override
   public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
          selectedAndTotal.setText(lv.getCheckedItemCount()+"/"+ lv.getCount());                
}});
4

2 回答 2

1

当您在 API Level 11+ 设备上运行时,保证该方法有效。

通常,该方法调用将在 API 级别 10 或更低的设备上崩溃,并抛出VerifyError. 如果您发现它似乎适用于 API 级别 10 或更低,则表明它getCheckedItemCount()存在于AbsListViewAPI 级别 11 之前,但已从 Android SDK 中排除(通过@hideAndroid 源代码中的属性)。依赖这些方法是有风险的,因为不能保证AbsListView在所有 pre-API Level 11 设备上都具有该方法,或者该方法的行为与在较新的设备上一样。

于 2013-05-19T03:39:34.213 回答
0

先生,当系统提示您设置为 时android:minSdkVersion="11",请将其设置为 11 而不是android:minSdkVersion="10在这里的官方文档中,提到该方法包含在 API 级别 11 中。如果您可以检查API 级别 < 11 的 getCheckedItemCount() 的等价物可能对您有所帮助?问题。如果您想对低于 11 的 API 级别使用类似的功能,这似乎提供了一个可能的解决方案。希望这会有所帮助。

于 2013-05-19T03:40:13.130 回答