2012-05-17 32 views
0
{ 
    "Platforms": [ 
    { 
     "PlatformNo": "1", 
     "SerialNumbers": [ 
     { 
      "Aplilevel": "1", 
      "Version": "1.0" 
     }, 
     { 
      "Aplilevel": "2", 
      "Version": "1.1" 
     }, 
     { 
      "Aplilevel": "3", 
      "Version": "1.5" 
     }, 
     { 
      "Aplilevel": "4", 
      "Version": "1.6" 
     } 
     ] 
    }, 
    { 
     "PlatformNo": "2", 
     "SerialNumbers": [ 
     { 
      "Aplilevel": "5", 
      "Version": "2.0" 
     }, 
     { 
      "Aplilevel": "6", 
      "Version": "2.0.1" 
     }, 
     { 
      "Aplilevel": "7", 
      "Version": "2.1.x" 
     }, 
     { 
      "Aplilevel": "8", 
      "Version": "2.2.x" 
     }, 
     { 
      "Aplilevel": "9", 
      "Version": "2.3" 
     }, 
     { 
      "Aplilevel": "10", 
      "Version": "2.3.3" 
     } 
     ] 
    }, 
    { 
     "PlatformNo": "3", 
     "SerialNumbers": [ 
     { 
      "Aplilevel": "11", 
      "Version": "3.0.x" 
     }, 
     { 
      "Aplilevel": "12", 
      "Version": "3.1.x" 
     }, 
     { 
      "Aplilevel": "13", 
      "Version": "3.2" 
     } 
     ] 
    }, 
    { 
     "PlatformNo": "4", 
     "SerialNumbers": [ 
     { 
      "Aplilevel": "14", 
      "Version": "4.0" 
     }, 
     { 
      "Aplilevel": "15", 
      "Version": "4.0.3" 
     } 
     ] 
    } 
    ] 
} 

上面顯示的JSON是我需要在PlatformNo的微調器中顯示的輸出。當我選擇一個項目時,是否需要在另一個微調器中獲取相應的API級別?任何人都可以幫助我解決這個問題嗎?我在下面嘗試獲取它,但我無法弄清楚它的正確性。我只在下一個微調器中獲得最後的值。有沒有辦法檢查這個?請幫幫我。有沒有辦法從JSON輸出中檢索相應的數據以顯示微調器中的數據?

String[] platfromno,apilevel; 
Spinner splatform,sapilevel; 
JSONObject obj = json.getJSONObject("Result"); 
JSONArray platformObject = customerObject.getJSONArray("Platforms"); 
String parray = customerObject.getString("Platforms"); 
System.out.println("String of Platforms array is " + parray); 

for (int i = 0; i < productNameObject.length(); i++) { 
    JSONObject e = productNameObject.getJSONObject(i); 
    platformno[i] = e.getString("PlatformNo"); 
    ArrayAdapter<String> spinnerPlatfromNo = 
     new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_dropdown_item, 
       platformno); 

    splatform.setAdapter(spinnerPlatfromNo); 
    JSONArray serialNumberObject = e.getJSONArray("SerialNumbers"); 
    apilevel= new String[serialNumberObject.length()]; 
    splatform.setOnItemSelectedListener(
     new OnItemSelectedListener() { 
      public void onItemSelected(AdapterView<?> arg0, 
          View arg1, int arg2, long arg3) { 
       System.out.println("selected Item position is " + 
        splatform.getSelectedItemPosition()); 
      } 

      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 
      } 
    }); 

    // if (splatform.getSelectedItemPosition()) { 

    for (int j = 0; j < serialNumberObject.length(); j++) { 
     JSONObject e1 = serialNumberObject.getJSONObject(j); 
     apilevel[j] = e1.getString("Aplilevel"); 
    // } 
    } 
+2

你[R具有解析或微調邏輯問題......? –

+0

我是平臺號碼正確,但api級別只是我得到的最後一個apilevels,所以我想在這裏如何檢查解析條件以獲取適當的數據 – Harish

回答

0

嘗試了很多我得到有效解決捻線機後。

String[] platfromno,apilevel; 
Spinner splatform,sapilevel; 


    JSONObject obj = json.getJSONObject("Result"); 
    JSONArray platformObject = customerObject 
         .getJSONArray("Platforms"); 

       for (int i = 0; i < platformObject.length(); i++) { 

        JSONObject e = platformObject.getJSONObject(i); 

        platformno[i] = e.getString("PlatformNo"); 


        ArrayAdapter<String> spinnerPlatfromNo = new ArrayAdapter<String>(
          this, 
          android.R.layout.simple_spinner_dropdown_item, 
          platformno); 

        splatform.setAdapter(spinnerPlatfromNo); 

        JSONArray serialNumberObject = e 
          .getJSONArray("SerialNumbers"); 

        apilevel= new String[serialNumberObject.length()]; 


        splatform.setOnItemSelectedListener(new OnItemSelectedListener() { 

         public void onItemSelected(AdapterView<?> arg0, 
           View arg1, int arg2, long arg3) { 
          System.out.println("selected Item position is " 
            + splatform.getSelectedItemPosition()); 

       fillApiLevel(); 

         } 

         public void onNothingSelected(AdapterView<?> arg0) { 
          // TODO Auto-generated method stub 

         } 
        }); 


     public void fillApiLevel(){ 

       JSONArray serialNumberObject = null; 
     try { 
      serialNumberObject =platformObject .getJSONObject(
        splatform.getSelectedItemPosition()).getJSONArray(
        "SerialNumbers"); 
     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     platfromno = new String[serialNumberObject.length()]; 
     apilevel = new String[serialNumberObject.length()]; 

     for (int j = 0; j < serialNumberObject.length(); j++) { 

      JSONObject e1 = null; 
      try { 
       e1 = serialNumberObject.getJSONObject(j); 

       platfromno[j] = e1.getString("Aplilevel"); 
       apilevel [j] = e1.getString("Version"); 


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

      ArrayAdapter<String> spinnerSerialNumer = new ArrayAdapter<String>(
        this, android.R.layout.simple_spinner_dropdown_item, 
        platformno); 

      sSerialNo.setAdapter(spinnerSerialNumer); 
        } 
相關問題