2012-09-12 66 views
0

我是Android開發人員中的新成員,它必須是一個簡單的問題,但我無法弄清楚。 我的應用程序得到一個表格的JSON: [ { 'src':1, 'title':'The Black Eyed Peas - Lets Get It Started', 'id':1, 'slots':[0,10], 'prev':[0,1,2,3] }, { 'src':2, 'title':'Carly Ray Jepsen - Call Me Maybe', 'id':2, 'slots':[0,10], 'prev':[0,1,2,3] }, { 'src':3, 'title':'Kris Kross - Jump', 'id':3, 'slots':[0,10], 'prev':[0,1,2,3] }, .... //several identical ] 然後我解析它。如何在AsyncTask中從JSON創建新的數據類型並將其發送給其他活動。 Android

    for(int i = 0; i<json.length(); i++) 
        { 
         JSONObject jo = (JSONObject) json.get(i); 

         String src = jo.getString("src"); 
         String title = jo.getString("title"); 
         String id = jo.getString("id"); 
         //What should do next? 

         }   

我需要創建一個新的數據類型來處理。我該如何做到這一點? PS對不起我的英文不好

回答

0

實現解析的類與對象發送意圖另一個活動

public class JSONDATA implements Parcelable { 

     private String src; 
     private String title; 
     private String id; 

     // Collect from json array 
     public JSONDATA(JSONObject jo) { 
      try { 
       String src = jo.getString("src"); 
       String title = jo.getString("title"); 
       String id = jo.getString("id"); 
      } catch (JSONException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 

     public static Parcelable.Creator<JSONDATA> getCreator() { 
      return CREATOR; 
     } 

//read from Intent; 
     private JSONDATA(Parcel in) { 
      src = in.readString(); 
      title = in.readString(); 
      id = in.readString(); 
     } 

     @Override 
     public int describeContents() { 
      // TODO Auto-generated method stub 
      return 0; 
     } 

     @Override 
     public void writeToParcel(Parcel dest, int flags) { 
      dest.writeString(src); 
      dest.writeString(title); 
      dest.writeString(id); 
     } 

     public static final Parcelable.Creator<JSONDATA> CREATOR = new Parcelable.Creator<JSONDATA>() { 
      public JSONDATA createFromParcel(Parcel in) { 
       return new JSONDATA(in); 
      } 

      public JSONDATA[] newArray(int size) { 
       return null; 
      } 
     }; 

    } 

然後

Intent intent = new Intent(); 
    JSONObject jo = (JSONObject) json.get(i); 
    JSONDATA data = new JSONDATA(jo); 
    intent.putExtra("DATA", data); 
    sendBroadCastIntent(i,"YOUR_ACTIVITY"); 
相關問題