在自定义 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

如何在自定义 ListView 中获取 EditText 的所有值

如何处理 ListView 中的多个倒数计时器?

如何在自定义适配器中搜索?

如何在android中单击listview适配器时展开和折叠视图