2016-04-05 15 views
1

Ich habe einen Spinner mit einer Liste von Körperteilen z. Brust, Beine, Rücken. Ich habe auch String-Arrays für jeden Körperteil mit einer Liste von Übungen für diesen Körperteil z. Für die Brust habe ich ein String-Array namens Brust-Übung mit einer Auswahl an Übungen wie Bankdrücken, Kurzhantel drücken usw. So zum Beispiel möchte ich den zweiten Spinner mit Brust Übung bevölkern, wenn Brust ausgewählt wurde oder Bein Übung, wenn Bein ausgewählt wurde. Irgendwelche Ides?Populations-Spinner basierend auf einer anderen Spinner-Auswahl

String[] chestExercises = {"Flat Barbell Bench Press", "Incline Barbell Bench Press", 
      "Decline Barbell Bench Press", "Flat Dumbbell Press", "incline Dumbbell Press", "Decline Dumbbell Press", 
      "Cable Flys", "Dumbbell Flys",}; 


    public void addListenerOnSpinnerItemSelection() { 
    spinner1 = (Spinner) findViewById(R.id.spinner1); 
    spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener()); 


    } 


    public void addListenerOnButton() { 

    spinner1 = (Spinner) findViewById(R.id.spinner1); 
    spinner2 = (Spinner) findViewById(R.id.spinner2); 
    btnSubmit = (Button) findViewById(R.id.btnSubmit); 



    btnSubmit.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      Toast.makeText(record_workout.this, 
        "OnClickListener : " + 
       "\nSpinner 1 : " + String.valueOf(spinner1.getSelectedItem())+ 
       "\nSpinner 2 : String.valueOf(spinner2.getSelectedItem()), 
        Toast.LENGTH_SHORT).show(); 
     } 

    }); 
} 

Antwort

1

Alles, was Sie tun müssen, ist die spinner1 Eingabe zu prüfen und auf dieser Grundlage, stellen Sie den Array-Adapter, der auf der Benutzereingabe basierend auf spinner2 entspricht eine bestimmte Arraylist passend:

ich dies schrieb Code für Sie, um eine bessere Idee zu bekommen, und haben einige Kommentare darin hinzugefügt, also überprüfen Sie diese auch heraus.

public void addListenerOnSpinnerItemSelection() { 
    ArrayList<MyObject> Chest = new ArrayList<MyObject>(); // This is actually the list created from the HashMap 
    ArrayList<MyObject> Knee = new ArrayList<MyObject>(); // This is actually the list created from the HashMap 
    ArrayList<MyObject> Head = new ArrayList<MyObject>(); // This is actually the list created from the HashMap 

    spinner1 = (Spinner) findViewById(R.id.spinner1); 
    spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener()); 
} 


public void addListenerOnButton() { 
    spinner1 = (Spinner) findViewById(R.id.spinner1); 
    spinner2 = (Spinner) findViewById(R.id.spinner2); 
    btnSubmit = (Button) findViewById(R.id.btnSubmit); 

    btnSubmit.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(record_workout.this, 
          "OnClickListener : " + 
          "\nSpinner 1 : " + String.valueOf(spinner1.getSelectedItem())+ 
          "\nSpinner 2 : " + String.valueOf(spinner2.getSelectedItem()), 
          Toast.LENGTH_SHORT).show(); 

      ArrayAdapter<MyObject> adapter = null; 

      if(spinner1.getSelectedItem().equals("Chest"){ 
       adapter = new ArrayAdapter<ObjectName>(this, android.R.layout.simple_spinner_item, Chest); 
      } else if (spinner1.getSelectedItem().equals("Knee"){ //INPUT = KNEE SO SET ADAPTER TO KNEE ARRAY LIST 
       adapter = new ArrayAdapter<ObjectName>(this, android.R.layout.simple_spinner_item, Knee); 
      } else if (spinner1.getSelectedItem().equals("Head"){ 
       adapter = new ArrayAdapter<ObjectName>(this, android.R.layout.simple_spinner_item, head); 
      } 

      if (adapter != null) { 
       spinner2.setAdapter(adapter); 
       adapter.notifyDataSetChanged(); 
      } 
     }); 
    } 
} 

Was ich hier habe ist ich den Eingang in den ersten Spinnern in Ihrem Spinner Zuhörer überprüft. Dann überprüfte ich, ob es mit "Kopf", "Brust" oder "Knie" übereinstimmte, und wenn dies der Fall war, setzte ich die ArrayAdapter für Spinner 2 auf die entsprechende ArrayList.

Lassen Sie mich wissen, ob dies geholfen hat.

+0

Danke für den Code, aber ich kann es nicht funktionieren. Ich bearbeite das Original Post es enthält jetzt das Array für die Brust Übung. Wenn die Truhe ausgewählt ist, möchte ich, dass die Array-Inhalte – Ryan159

+0

erscheinen, funktioniert nicht. Ich verstehe, was Sie versuchen, aber ich verstehe diesen Teil nicht: ArrayList Chest = new ArrayList (); – Ryan159

+0

Das ist eine Array-Liste namens Brust gefüllt mit Ihren Werten, die Sie in den Spinner, wenn der Benutzer wählt "Brust" –

Verwandte Themen