gpt4 book ai didi

java - Android使用适配器将两个不同类型的数组列表显示到一个无缝 ListView 中

转载 作者:行者123 更新时间:2023-12-01 21:58:57 25 4
gpt4 key购买 nike

我有一个基类的自定义ArrayAdapter。我还有一个子类,我希望 ArrayAdapter 能够接收两种不同类型的数据,即(arrayList 和 arraylist),并在一个无缝的 listview 中连续显示它们。

我以前从未这样做过,因此非常感谢一般性评论和指南。我尝试使 ArrayAdapter 通用:

public class MyAdapter<T extends BaseClass> extends ArrayAdapter<T>

使用这个构造函数:

public MyAdapter(Context context, ArrayList<T> items) {
super(context, 0, items);
fullList = items;
}

但我不知道如何传递一个可以具有类型子类或基类的通用 ArrayList。 (这种方法稍后将涉及使用instanceOf的代码,这不是最好的做事方式......正如我从SO中学到的)

我正在考虑扩展这个自定义arrayadapter本身,而不是泛型。但我不确定这将如何运作。

解决这个问题的最佳方法是什么?除了 arrayadapter 之外,是否还有更适合这种情况的适配器?或者 recyclerview 有办法解决这个问题吗?

我最终想要有两个相似但不同类型的数据集(一个是另一个的子类),作为一个无缝 ListView 输出。我无法找到执行此操作的一般方法。

最佳答案

您在 ArrayList 中使用什么数据类型?

例如,如果是字符串和整数,您能否不转换这些值并合并到单个 ArrayList 中?

for (int i=0; i<arraylist1.size(); i++) { //arraylist1 containing integers

arraylist2.add(Integer.toString(arraylist1.get(i));

}

然后你就可以将一个 ArrayList 应用于标准的 ArrayAdapter。

关于java - Android使用适配器将两个不同类型的数组列表显示到一个无缝 ListView 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58717743/

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