user1162050
user1162050

Reputation: 11

Android storing arraylist data into multimap using same key

Hi friends i got stucked into these problem at the last stage of my program.Here is some description about my project:i am calling a web service with the help of Ksoap and getting the JSON response from the server than,i am parsed that response and store it into the correspondent arraylist.Till here everything is working fine.Now the problem starts here i want to store all these AppID,AppName,AppTabID,Icon,Tabname into a multimap with same key for the same index.How can i achieve that ?Any help would highly appreciated!

private SoapPrimitive response;
ArrayList<String> AppID = new ArrayList<String>();
ArrayList<String> AppName = new ArrayList<String>();
ArrayList<String> AppTabId = new ArrayList<String>();
ArrayList<String> Icon = new ArrayList<String>();
ArrayList<Drawable> drawables=new ArrayList<Drawable>();
ArrayList<String> TabName = new ArrayList<String>();

<!--here are  the Arraylist declaration->

public String parse(String a) throws Exception { 

    JSONArray jsonArry1    = new JSONArray(res);     // create a json object from a string
    // JSONArray  jsonEvents = jsonObj.optJSONArray("AppItems"); // get all events as json objects from AppItems array
    System.out.println("Length of array for AppItem tag is.. "+jsonArry1.length());

    for(int i = 0; i < jsonArry1.length(); i++){
        JSONObject event = jsonArry1.getJSONObject(i); // create a single event jsonObject

        String AppID=event.getString("AppId");
        System.out.println("AppId is "+AppID);

        String AppName=event.getString("AppName");
        System.out.println("AppName is "+AppName);

        String AppTabId=event.getString("AppTabId");
        System.out.println("AppTabId is "+AppTabId);

        String Icon=event.getString("Icon");
        System.out.println("Icon is "+Icon);

        TabHtml=event.getString("TabHtml");
        System.out.println("TabHtml = "+TabHtml);
    }
    System.out.println("return"+TabHtml);
    return TabHtml;
}

the above code i am using for saving all the content into arraylist object.From here i want to set all these diferent Arraylist into same MultiMap.How can i achieve that?

Upvotes: 1

Views: 713

Answers (3)

jeet
jeet

Reputation: 29199

It is not very good approach to have all these different lists for different fields in response, but as you have implemented almost completed, I would lead this approach further:

You can have a Map into map to resolve this prob:

All you need to have follow the below loop:

HashMap<Integer, HashMap<String, String> parsed=new HashMap<Integer, HashMap<String, String>();
for(int i=0;i<AppID.size();i++)
{
    HashMap<String, String> keyValues= new HashMap<String, String>();
    keyValues.put("id", AppName .get(0));
    keyValues.put("id", AppTabId .get(0));
    keyValues.put("id", Icon .get(0));

    .....
    parsed(new Integer(i), keyValues);
 }

Upvotes: 0

tzaman
tzaman

Reputation: 47800

I'd just define an AppData container class to hold all data related to a single response, and then just put AppData objects into your multimap.

Upvotes: 1

Ali
Ali

Reputation: 12674

On this link (Java Map Interface) search for multimap which gives a straight forward implementation of a multimap.

However from what I understand of your question, you'll have to put all your Lists into a List and that would go into a MultiMap (which will just be a HashMap<String,ArrayList<ArrayList>>).

Upvotes: 0

Related Questions