为分段列表视图Android创建自定义数组适配器

时间:2014-01-02 21:31:08

标签: android

您好我正在尝试创建一个联系人页面,其中列表视图中的部分按字母顺序显示项目。

目前我有一个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下。我已经看过谷歌并发现有很多方法可以做到这一点,但最好的内存和处理有效的方式是什么?

1 个答案:

答案 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;
}