2017-02-02 1 views
1

Ist es möglich, beide Objekte in ein einzelnes Objekt zusammenzuführen, nachdem die Daten aus meiner Datenbank abgerufen wurden?Wie füge ich zwei JSON-Objekte in Android-Spinner zusammen

Hier ist mein Android-Code für Spinner abrufen

spinner1 = (Spinner) findViewById(R.id.sp1); 
     final List<String> list1 = new ArrayList<String>(); 

    try 
      { 
       JSONArray JA = new JSONArray(result); 
       JSONObject json, json1; 

       s_name = new String[JA.length()]; 
       s_gender = new String[JA.length()]; 

       for(int i = 0; i<JA.length(); i++) 
       { 
        json = JA.getJSONObject(i); 
        s_name[i]=json.getString("s_name"); 

       } 
       for(int i = 0; i<JA.length(); i++) 
       { 
        json1 = JA.getJSONObject(i); 
        s_gender[i]=json1.getString("s_gender"); 
       } 

       for(int i = 0; i<s_name.length; i++) 
       { 
        list1.add(s_name[i]); 
       } 
       for(int i = 0; i<s_gender.length; i++) 
       { 
        list1.add(s_gender[i]); 
       } 


      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
      spinner_fn(); 

     } 

private void spinner_fn() { 
     ArrayAdapter<String> spinner = new ArrayAdapter<String>(Games.this, layout.simple_spinner_dropdown_item, list1); 
     spinner1.setAdapter(spinner); 
} 

s_name ruft Sport und s_gender ruft das Geschlecht. In meinem Code wird der Sportname, aber kein Geschlecht angezeigt. Was ich will, ist so etwas wie Basketball weiblich

Vielen Dank.

Antwort

2

Derzeit wird der Code Addition aller Werte sport names dann werden alle Werte gender

1.) Iterieren durch beide Anordnungen in einer einzigen Schleife.

2.) Fetch Werte von den beiden Arrays und fügen Sie sie als einzelne String in der Liste

sowohl arrasy als Einzelsaite für Spinner Adapter Kombinieren wie diese

for(int i = 0; i<s_name.length; i++) 
    { 
     list1.add(s_name[i] + " "+s_gender[i]); 
     //   Basketball +" "+ Female 
    } 

Sie weiter optimieren können Ihr JSON Parsing Code mit einer einzelnen Schleife, um Ihre beiden Werte zu holen


-Code wird

class YourActivity extends ..... 
{ 

    Spinner spinner1; 

    // Declare list1 global 
    List<String> list1; 

    Somefunction() { 
     try 
     { 
      spinner1 = (Spinner) findViewById(R.id.sp1); 

      // initialize list 
      list1 = new ArrayList<String>(); 

      JSONArray JA = new JSONArray(result); 
      JSONObject json, json1; 

      s_name = new String[JA.length()]; 
      s_gender = new String[JA.length()]; 

      for(int i = 0; i<JA.length(); i++) 
      { 
       json  = JA.getJSONObject(i); 
       s_name[i] = json.getString("s_name"); 
       s_gender[i] = json.getString("s_gender"); 
      } 

      for(int i = 0; i<s_name.length; i++) 
      { 
       list1.add(s_name[i]+" "+s_gender[i]); 
      } 

     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     spinner_fn(); 
    } 

    private void spinner_fn() { 
     ArrayAdapter<String> spinner = new ArrayAdapter<String>(Games.this, android.R.layout.simple_spinner_item, list1); 
     spinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner1.setAdapter(spinner); 
    } 
} 
+0

immer noch nur die Sportart Sir. Was soll ich hier ändern? ArrayAdapter Spinner = neuer ArrayAdapter (Games.this, layout.simple_spinner_dropdown_item, s_name); –

+0

weil, wenn ich den s_name zum Geschlecht chance. Der Spinner wird nur männlich und weiblich –

+0

es gibt mir einen Fehler Sir –

0

neue Klasse

class SportsModel { 
    private String name = ""; 
    private String gender = ""; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getGender() { 
     return gender; 
    } 

    public void setGender(String gender) { 
     this.gender = gender; 
    } 

    @Override 
    public String toString() { 
     return name + " " + gender; 
    } 
} 

Jetzt mit unter einem bearbeiten Code erstellen sein.

try { 
     final JSONArray JA = new JSONArray(result); 

     final ArrayList<SportsModel> list1 = new ArrayList<>(); 

     for (int i = 0; i < JA.length(); i++) { 
      final SportsModel model = new SportsModel(); 
      final JSONObject json = JA.getJSONObject(i); 

      model.setName(json.getString("s_name")); 
      model.setGender(json.getString("s_gender")); 

      list1.add(model); 
     } 

    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    spinner_fn(); 
Verwandte Themen