在自定义 Listview 适配器中使用多个视图
Posted
技术标签:
【中文标题】在自定义 Listview 适配器中使用多个视图【英文标题】:Using Multiple Views in a Custom Listview Adapter 【发布时间】:2019-01-28 08:07:46 【问题描述】:我目前正在进行一个项目,其中涉及一个 Imageview 和一个 Textview,在自定义布局文件中设置,并通过我设置的自定义适配器进行维护。
一切正常,问题是,我想要两个甚至四个文本视图,并且传入另一个字符串数组会给我一个错误。我有点卡在这里,并将我的代码放在下面。
代码:
错误:
我确信这是一件很简单的事情,我做错了,但无论哪种方式都超出了我的能力。
错误可以在上图中看到。如果有 2 台电视,我该如何做我目前正在做的事情?
【问题讨论】:
嗨 John..看看这个解决方案,它对你有帮助 ***.com/a/51950438/3946958 。还有一个是***.com/questions/39971350/… 谢谢,但这并没有真正帮助,因为它们完全不同,而且我是新人^^ 你为什么要在自定义适配器中传递两个数组...因为适配器仅依赖于你的一个数组列表大小...你可以使用自定义 ArrayList ..就像我们的文本和图像一样保存在单个 ArrayList 中 有趣的拉文德拉,谢谢你的提示,我不知道。您能否提供一个示例,我可以用两组不同的数据填写两台电视,例如 (1, 2, 3) 和 (a, b, c) ? 基本适配器看起来也是一个选项,所以 ^^ 【参考方案1】:你需要使用下面的模型类
import java.io.Serializable;
public class ListModel implements Serializable
private String name;
private String address;
private String image;
public String getName()
return name;
public void setName(String name)
this.name = name;
public String getAddress()
return address;
public void setAddress(String address)
this.address = address;
public String getImage()
return image;
public void setImage(String image)
this.image = image;
在你的 java 类中,你需要像这样膨胀数据
ArrayList<ListModel> arrayList = new ArrayList<>();
for (int i = 0; i <10; i++)
ListModel model = new ListModel();
model.setName("Name " + i);
model.setAddress("Address " + i);
model.setImage("Image " + i);
arrayList.add(model);
// YOU CAN USE THIS LIST IN YOUR ADAPTER JUST PASS YOUR ARRAYLIST INTO ADAPTER
CustomCurationAdaptor adapter = new CustomCurationAdaptor(this, arrayList);
【讨论】:
以上是关于在自定义 Listview 适配器中使用多个视图的主要内容,如果未能解决你的问题,请参考以下文章
为 listview 定义 onlick:在 listView 级别的 Onclick 与自定义视图适配器内的 Onclick
如何在自定义 ListView 适配器中处理 RadioGroup 的 onCheckedChangeListener