如何组合多个ArrayList 将值放入一个ListView中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何组合多个ArrayList 将值放入一个ListView中相关的知识,希望对你有一定的参考价值。

对于我正面临的这个问题,我有以下图表; enter image description here

这是我的代码中的ArrayList示例;

[{name0=Adventurousness, value0=46}, {value1=98, name1=Artistic interests}, {name2=Emotionality, value2=70}, {value3=54, name3=Imagination}, {value4=99, name4=Intellect}, {value5=98, name5=Authority-challenging}, {name0=Achievement striving, value0=62}, {value1=98, name1=Cautiousness}, {name2=Dutifulness, value2=69}, {value3=75, name3=Orderliness}, {value4=44, name4=Self-discipline}, {value5=65, name5=Self-efficacy}, {name0=Activity level, value0=69}, {value1=75, name1=Assertiveness}, {name2=Cheerfulness, value2=0}, {value3=6, name3=Excitement-seeking}, {value4=7, name4=Outgoing}, {value5=0, name5=Gregariousness}, {name0=Altruism, value0=84}, {value1=86, name1=Cooperation}, {name2=Modesty, value2=61}, {value3=81, name3=Uncompromising}, {value4=99, name4=Sympathy}, {value5=54, name5=Trust}, {name0=Fiery, value0=5}, {value1=19, name1=Prone to worry}, {name2=Melancholy, value2=76}, {value3=46, name3=Immoderation}, {value4=72, name4=Self-consciousness}, {value5=18, name5=Susceptible to stress}]

您可以想象另一个包含(name0value0)值的类似ArrayList。

我不知道如何实现这一点,我尝试过这样的事情,但没有奏效;这些是我想要值的ListView里面的ID。

sample1Adapter = new SimpleAdapter(getApplicationContext(), sample1List2,
R.layout.samplecontent, new String[]{ "name0", "value0",
"name1", "value1", "name2", "value2",
"name3", "value3", "name4", "value4", "name5", "value5"},
new int[]{R.id.name2, R.id.value2, R.id.name3, R.id.value3,
R.id.name4, R.id.value4, R.id.name5, R.id.value5,
R.id.name6, R.id.value6, R.id.name7, R.id.value7});
listview.setVerticalScrollBarEnabled(true);
listview.setAdapter(sample1Adapter);

谢谢。

答案

看起来您想要每行显示4个键值对。创建一个具有这些键值对的对象,然后将适配器绑定到这些对象的List。假设键值对代表杂志的属性:

class Magazine implements Parcelable 
String publisher;
String title;
int numCopiesAvailable;
int numCopiesSold;

String getPublisher()

将类型杂志列表传递给您的自定义适配器,并在其中呈现每个元素。每行显示一行,具有4个属性

另一答案

解决方案1:而不是SimpleAdapter使用ArrayAdapter通过你的ArrayList<HashMap>对象

解决方案2:创建自定义适配器及其构造函数传递您的ArrayList<HashMap>对象并处理其中的数据以加载到您的ListView

另一答案

支持有3个ArrayList<HashMap>而不是将它们放入一个finalList中。

拿另一个

 ArrayList<HashMap> finalList = new HashMap();

你可以把一个循环添加到这个最终的List

finalList.put("0",haspMapList1);
finalList.put("1",haspMapList2);

然后在CustomListAdapter中传递此列表。

以上是关于如何组合多个ArrayList 将值放入一个ListView中的主要内容,如果未能解决你的问题,请参考以下文章

将值映射到 ArrayList

我如何将值放入文本输入? [复制]

如何将字符串的多个部分放入列表中?

Extjs Combo - 如何使用 GetForm().load 将值加载到组合

如何在不显示附加信息的情况下将附加信息放入用于 ListView 的 Arraylist

如何在python中读取文件时将值组合在一起