如果我想拥有一个ExpandableListView,它从服务器(JSON数组)的响应中为其组及其子级获取数据。
我该怎么做?
我知道这里有SimpleCursorTreeAdapter,但是它仅用于游标,而我以前使用过它,但是我需要该适配器的任何等效项才能与JSON数组一起使用

这是获取groupItems的功能

        protected void BindOrederItemList(final int order_id)
    {
        // TODO Auto-generated method stub
        //select all categories from order items where order_id =??
        //select items where category=??
        String Url="http://192.168.3.113/mywebservices.php?op=GetOrderCategory&lang_id=1&order_id="+order_id;
        GetNetworkData.OnPostExecuteListener listener=new GetNetworkData.OnPostExecuteListener()
        {

            @Override
            public void onPostExecute(String result) {
                // TODO Auto-generated method stub
                if (result!=null)
                {
                    try
                    {

                 JSONArray jArray = new JSONArray(result);
                 HashMap<String, String> Catmap = new HashMap<String, String>();
               //  ArrayList<Integer> category=new ArrayList<Integer>();
                 for (int i = 0; i < jArray.length(); i++)

                    {

                        JSONObject e = jArray.getJSONObject(i);
                            id=e.getInt("order_id");

                         cat_name=e.getString("cat_name");
                          cat_id=e.getInt("cat_id");
                          Catmap.put("cat_id",String.valueOf(cat_id));
                          Catmap.put("cat_name", cat_name);
                          catItemsList.add(Catmap);

                    }
                Log.i("Insid For Loop", "Group size = "+catItemsList.toArray());



                      //  Log.i("Bind item", "CAT SIZE "+catItemsList.size());

                        }
                    catch(Exception e)
                    {
                        e.printStackTrace();
                    }
                }

            }

        };

        try
        {
        GetNetworkData task = new GetNetworkData(Url,null,listener);
        task.execute();
        }
        catch(Exception e)
        {

            e.printStackTrace();

        }
    }


谢谢

最佳答案

一种方法是使用SimpleExandableListAdapter

在这种情况下,您将必须首先获取JSON数据,然后将其存储为地图列表。您可以使用AsyncTaskLoader完成操作,在其中提取并重新打包数据,然后在后台创建适配器的新实例,然后将其交换到ExandableListView中。

10-08 09:01