2016-10-22 5 views
0

ich einige Daten immer von PHP-API verwenden, und ich bin mit JSON PARSING Ausgabe zu erhalten: Unten ist der Codejson Parsing Probleme mit Spinnern

private void showJSON(String json){ 
    ParseJSON pj = new ParseJSON(json); 
    pj.parseJSON(); 
    state_ids=ParseJSON.ids; 
    states=ParseJSON.names; 
    //state_nid=ParseJSON.name_nid; 

    //Creating the ArrayAdapter instance having the state list 
    ArrayAdapter a3 = new ArrayAdapter(UpdateUserProfile.this,android.R.layout.simple_spinner_item,states); 
    a3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    //Setting the ArrayAdapter data on the Spinner 
    state_spin.setAdapter(a3); 

} 

hier ist parseJson()

protected void parseJSON(){ 
    JSONObject jsonObject=null; 
    try { 
     jsonObject = new JSONObject(json); 
     users = jsonObject.getJSONArray(JSON_ARRAY); 

     ids = new String[users.length()]; 
     names = new String[users.length()]; 
     name_nid = new String[users.length()]; 

     for(int i=0;i<users.length();i++){ 
      JSONObject jo = users.getJSONObject(i); 
      ids[i] = jo.getString(KEY_ID); 
      names[i] = jo.getString(KEY_NAME); 
      name_nid[i]=ids[i]+" "+names[i]; 
      /*int d=1; 
      String e=String.valueOf(d);*/ 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 

Aber die herausfordernde Sache für mich ist, dass, wann immer Benutzer einen der Zustände auswählt, ich die entsprechende 'PHP Id' dieses Staates bekommen möchte. Damit ich eine weitere Anfrage an den Server senden kann, um die Regionen dieses Status zu erhalten. Ich zeige entsprechende Bereiche auf einem anderen Spinner an.

 //Performing action onItemSelected and onNothing selected 
@Override 
public void onItemSelected(AdapterView<?> arg0, View arg1, int position,long id) { 

    selected_state= (String)state_spin.getItemAtPosition(position); 
    //state_id_only=selected_state.replaceAll("[^0-9]", ""); 
    //Log.d("state id is", state_id_only); 
    //sendRequest1(); 
} 

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

} 

Aber auf dem 'State' Spinner ich möchte nur Status Text nicht die IDs zeigen. Also, was ist die mögliche Lösung für diese Ich hoffe, jemand wird meinen Punkt verstehen und mir helfen ... Ich bin ein frischer .. Danke

+0

Sie müssen über benutzerdefinierte Spinner –

+0

@VivekMishra können Sie mir einen nützlichen Link in Bezug auf benutzerdefinierte Spinner vorschlagen? Die Informationen, die ich über die Anpassung gefunden habe, waren nicht hilfreich. –

+0

siehe http://stackoverflow.com/questions/35983176/how-to-create-spinner-list-using-customadapter-in-android –

Antwort

0

Wie von @VivekMishra in Kommentaren vorgeschlagen. Ich habe diesen Link verwendet und meinen Spinner angepasst. Dann verberge ich die Sichtbarkeit von ID textView, so dass ich in der Ausgabe Werte von ID textview bekommen kann und aufgrund der eingestellten Sichtbarkeit wird der Text nicht in der Spinnerausgabe erscheinen.