2013-07-29 6 views
1

Il semble que j'ai un problème avec la conversion JSONArray et JSONObject. Mon PHP ressemble à ceciObjet JSON et tableau

{"list":[{"Name":"Michael","Hour":"one"},{"Name":"Johhny","Hour":"two"}]}.

Je suis en train de remplir filateurs, mais cela ne fonctionne pas, ils restent vides. J'ai vu des questions similaires mais sans bonne explication. J'espère que tu peux m'aider.

public class Choose extends Activity { 

Spinner spinner1, spinner2; 
InputStream is=null; 
String result=null; 
String line=null; 
String[] Name, Hour; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_izbora_grada); 

     spinner1=(Spinner) findViewById(R.id.spinner1); 
     spinner2=(Spinner) findViewById(R.id.spinner2); 
     final List<String> list1=new ArrayList<String>(); 
     final List<String> list2=new ArrayList<String>(); 
     Button b=(Button) findViewById(R.id.button); 

     b.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

       try 
       { 
       HttpClient httpclient = new DefaultHttpClient(); 
       HttpPost httppost = new HttpPost("http://192.168.0.105/new/spinner.php"); 
       HttpResponse response = httpclient.execute(httppost); 
       Log.e("Fail 1", "3"); 

       HttpEntity entity = response.getEntity(); 
       Log.e("Fail 1", "4"); 

       is = entity.getContent(); 
       Log.e("Pass 1", "connection success "); 
       } 
       catch(Exception e) 
       { 
       Log.e("Fail 1", e.toString()); 
       Toast.makeText(getApplicationContext(), "Invalid IP Address",Toast.LENGTH_LONG).show(); 
       finish(); 
       } 

       try 
       { 
       BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); 
       StringBuilder sb = new StringBuilder(); 
       while ((line = reader.readLine()) != null) 
       { 
       sb.append(line + "\n"); 
       } 
       is.close(); 
       result = sb.toString(); 
       } 
       catch(Exception e) 
       { 
       Log.e("Fail 2", e.toString()); 
       }  

       try 
       { 
       JSONObject jsonObj=new JSONObject(result); 
       JSONArray JA=jsonObj.getJSONArray("list"); 
       JSONObject json= null; 
       Name = new String[JA.length()];  
       Hour = new String[JA.length()]; 

       for(int i=0;i<JA.length();i++) 
       { 
       json=JA.getJSONObject(i); 
       Name[i] = json.getString("Name"); 
       Hour[i]=json.getString("Hour"); 
       } 
       Toast.makeText(getApplicationContext(), "sss",Toast.LENGTH_LONG).show(); 

       for(int i=0;i<grad.length;i++) 
       { 
       list1.add(Name[i]); 
       list2.add(Hour[i]); 
       } 

       spinner_fn(); 

       } 
       catch(Exception e) 
       { 

       Log.e("Fail 3", e.toString()); 
       //login.this.finish(); 

       } 
      } 
     }); 
    } 

    private void spinner_fn() { 
     // TODO Auto-generated method stub 

     ArrayAdapter<String> dataAdapter1 = new ArrayAdapter<String>(getApplicationContext(), 
             android.R.layout.simple_spinner_item, Name); 
     dataAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner1.setAdapter(dataAdapter1); 


     ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(getApplicationContext(), 
             android.R.layout.simple_spinner_item, Hour); 
     dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner2.setAdapter(dataAdapter2); 


     spinner1.setOnItemSelectedListener(new OnItemSelectedListener() 
     { 
     public void onItemSelected(AdapterView<?> arg0, View arg1,int position, long id) 
     { 
     // TODO Auto-generated method stub 

     spinner2.setSelection(position); 

     } 

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

     }); 


     spinner2.setOnItemSelectedListener(new OnItemSelectedListener() { 

     public void onItemSelected(AdapterView<?> arg0, View arg1,int position, long arg3) { 
     // TODO Auto-generated method stub 

     spinner1.setSelection(position); 

     } 

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

     } } 

Et voici un rapport de LogCat

07-29 14:41:59.928: D/dalvikvm(15381): GC_CONCURRENT freed 64K, 7% free 12511K/13319K, paused 18ms+13ms, total 63ms 
07-29 14:41:59.928: D/dalvikvm(15381): WAIT_FOR_CONCURRENT_GC blocked 27ms 
07-29 14:42:00.118: D/libEGL(15381): loaded /system/lib/egl/libEGL_mali.so 
07-29 14:42:00.138: D/libEGL(15381): loaded /system/lib/egl/libGLESv1_CM_mali.so 
07-29 14:42:00.148: D/libEGL(15381): loaded /system/lib/egl/libGLESv2_mali.so 
07-29 14:42:00.153: D/(15381): Device driver API match 
07-29 14:42:00.153: D/(15381): Device driver API version: 10 
07-29 14:42:00.153: D/(15381): User space API version: 10 
07-29 14:42:00.153: D/(15381): mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Tue Oct 16 15:37:13 KST 2012 
07-29 14:42:00.218: D/OpenGLRenderer(15381): Enabling debug mode 0 
07-29 14:42:17.183: D/dalvikvm(16000): GC_CONCURRENT freed 64K, 7% free 12511K/13319K, paused 5ms+2ms, total 22ms 
07-29 14:42:17.183: D/dalvikvm(16000): WAIT_FOR_CONCURRENT_GC blocked 9ms 
07-29 14:42:17.268: D/libEGL(16000): loaded /system/lib/egl/libEGL_mali.so 
07-29 14:42:17.278: D/libEGL(16000): loaded /system/lib/egl/libGLESv1_CM_mali.so 
07-29 14:42:17.278: D/libEGL(16000): loaded /system/lib/egl/libGLESv2_mali.so 
07-29 14:42:17.283: D/(16000): Device driver API match 
07-29 14:42:17.283: D/(16000): Device driver API version: 10 
07-29 14:42:17.283: D/(16000): User space API version: 10 
07-29 14:42:17.283: D/(16000): mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Tue Oct 16 15:37:13 KST 2012 
07-29 14:42:17.313: D/OpenGLRenderer(16000): Enabling debug mode 0 
07-29 14:42:31.903: D/dalvikvm(16000): GC_CONCURRENT freed 12K, 6% free 12897K/13703K, paused 13ms+2ms, total 26ms 
+1

Qu'est-ce qui ne fonctionne pas à ce sujet? Avez-vous une exception? Si oui pouvez-vous poster le chat de journal? – CodingIntrigue

+1

"ça ne marche pas" ne suffit pas pour comprendre ce qui se passe et nous ne pouvons pas vous aider sans plus de détails. –

+0

Donnez plus de clarté sur le problème auquel vous êtes confronté – Suji

Répondre

0
http://vimaltuts.com/android-tutorial-for-beginners/android-spinner-control-example 

Ce lien peut vous aider à Spinner fera apparaître suivre les étapes dans l'exemple donné ..

+0

Tnx, mais votre lien est simple spinner. J'ai besoin de le peupler à partir de la base de données MySQL en utilisant JSON. – Michael

+0

http://cyriltata.blogspot.in/2013/01/populate-android-spinner-with-json-data.html .. Ici vous trouverez votre solution ... j'espère que cela fonctionne :) –