您好我正在尝试创建一个联系人页面,其中列表视图中的部分按字母顺序显示项目。
目前我有一个JSONObject,其中包含每个字母的JSONArrays,其中包含数组中每个人的JSONObjects。它看起来与此类似
{"Contacts": //JSONObject
{
"B"://JSONArray..
[
{"ContactName":sdfsdf,"ID":900,"Number":1368349},
{"ContactName":adsdfd,"ID":1900,"Number":136856},
{"ContactName":adglkhdofg,"ID":600,"Number":136845}
],
"C":[
{"ContactName":alkghoi,"ID":900,"image":1368349.jpg},
{"ContactName":wetete,"ID":1900,"image":136856.jpg},
{"ContactName":dfhtfh,"ID":600,"image":136845.jpg}
]
.....//and so on..
}
}
我想将此对象传递到自定义数组适配器并让它循环并为每个JSONArray创建一个标头,并将项目放在每个JSONArray下。我已经看过谷歌并发现有很多方法可以做到这一点,但最好的内存和处理有效的方式是什么?
答案 0 :(得分:0)
最有效的方法也是最直接的解决方案(至少在我看来);这是创建一个保存信息(名称,ID,数字等)的Contact对象。然后在创建ArrayAdapter时传递JsonObject,然后可以将其解析为Contact对象数组。只要您回收行视图,它就应该快速执行并且占用的内存相对较小。
EG。回收:
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null) {
//TODO: create or inflate your view here. it is only null the first time through
}
//TODO: Your other view settings (such as setting the name, id, etc. fields)
return convertView;
}