为分区列表视图 Android 创建自定义阵列适配器



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

目前我有一个 JSONObject,其中包含数组中每个人的每个字母的 JSONArrays。 它看起来与此类似

{"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 创建一个标头,并将项目放在每个标头下。 我查看了谷歌,发现有很多方法可以做到这一点,但是最好的内存和处理效率方法是什么?

最有效的方法也是最直接的解决方案(至少在我看来是这样);即创建一个保存信息(姓名、ID、号码等)的 Contact 对象。 然后,当您创建 ArrayAdapter 时,传递 JsonObject,然后您可以将其解析为 Contact 对象数组。 只要您回收行视图,它应该执行得很快,并且内存占用量相对较小。

例如回收:

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

最新更新