gpt4 book ai didi

android - ListViews - 如何在 API 11 之前使用 ArrayAdapter.addAll() 函数?

转载 作者:IT老高 更新时间:2023-10-28 23:18:57 25 4
gpt4 key购买 nike

我正在尝试使用全新的 ArrayList 更新 ListView。对于 API 11,使用 addAll(...) 方法效果很好,但这不适用于早期的 API。我不知道如何为旧版本更新这样的整个列表。

ArrayAdapter<String> textList = new ArrayAdapter<String>(listener, R.layout.list_item, stringList);
listener.setListAdapter(textList);

然后……

textList.clear();
textList.addAll(stringList); <--- works fine for Android 3.0 (API Level 11) and beyond, but not before.

在 API 11 中引入 addAll() 之前,您是如何做到这一点的?谢谢。

最佳答案

这是完整的代码块,它对 SDK_INT >= 11 的 Android 设备使用 native addAll(),并对 API 级别低于 11 的设备使用循环解决方法。

@TargetApi(11)
public void setData(List<String> data) {
clear();
if (data != null) {
//If the platform supports it, use addAll, otherwise add in loop
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
addAll(data);
} else {
for(String item: data) {
add(item);
}
}
}
}

@TargetApi(11)当您有 <uses-sdk android:minSdkVersion="X"/> 时,注释与 ADT 17 一起使用以抑制 Lint 警告。在 X 小于 11 的 AndroidManifest.xml 中。参见 http://tools.android.com/recent/lintapicheck了解更多信息。

关于android - ListViews - 如何在 API 11 之前使用 ArrayAdapter.addAll() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9677172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com