有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓循环中的java填充适配器

嗨,我有一个SeparatedListAdapter我正在尝试填充。我有一个JSONObject的多个JSONArray包含JSONObject人。我试图在JSONObject之间循环,并为每个JSONArray创建一个标题。然后,我想在每个JSONArray之间循环,并向列表中添加一个项目,并获取此人的姓名

目前,它正确地创建了标题,但它循环并不断地从每个JSONObject向列表中添加每个名称。我只需要它添加来自该JSONArray的名称

我的JSON如下所示:

{"Contacts": //JSONObject
  {
    "B"://JSONArray..
    [
        {"first_name":sdfsdf,"last_name":900,"Number":1368349}, 
        {"first_name":adsdfd,"last_name":1900,"Number":136856},  
         {"first_name":adglkhdofg,"last_name":600,"Number":136845}
   ],
  "C":[
         {"first_name":alkghoi,"last_name":900,"Number":1368349},
         {"first_name":wetete,"last_name":1900,"Number":136856}, 
         {"first_name":dfhtfh,"last_name":600,"Number":136845}
     ]
      .....//and so on.. 
     }


} 

以下是我目前为止的for循环:

JSONObject singleContactDetails;

                    contactName = new ArrayList<String>();
                    accessLevel = new ArrayList<String>();
                    imageURL = new ArrayList<String>();
                    JSONArray namesArray = new JSONArray();
                    SeparatedListAdapter adapter = new SeparatedListAdapter(getActivity());  

                    for (int t=0; t< headerStrings.length(); t++){

                        JSONArray contactsArray = contacts.getJSONArray(headerStrings.getString(t));
                        Log.v("CAA", "contactsArray = " + contactsArray.length());
                        for (int i=0; i<contactsArray.length(); i++){

                            try {
                                singleContactDetails = contactsArray.getJSONObject(i);
                                String name = singleContactDetails.getString("first_name") + " " + singleContactDetails.getString("last_name");
                                contactName.add(name);

                                Log.v("CAA", "namesArray" + namesArray); 
                                accessLevel.add(singleContactDetails.getString("access_level"));
                                imageURL.add(singleContactDetails.getString("filename"));




                            } catch (JSONException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }   


                        }   


                    adapter.addSection(headerStrings.getString(t), new ContactArrayAdapter (getActivity(),R.layout.document_cell,contactName,accessLevel,imageURL, bgColor, gilSans));  

                    Log.v("Main", "contacts.getJSONArray(headerStrings.getString(t)) = " + contacts.getJSONArray(headerStrings.getString(t)));      

                    }

它的输出是这样的,因为总共有6个对象,但它将所有对象添加到每个部分:

B
name
name
name
name
name
name

C
name
name
name
name
name
name

我想要实现的是:

B
name
name
name

C
name
name
name

任何帮助都将不胜感激


共 (0) 个答案