1. Nimm jetzt an unserem AGM - Gewinnspiel teil - Informationen zum M1, A2 und A8 findest Du hier, hier und hier!
  1. C_T, 10.01.2010 #1
    C_T

    C_T Threadstarter Neuer Benutzer

    Hi

    Ich habe 2 Spinner in meinem Programm. Wie kann ich herausfinden, welcher gerade ausgewählt ist? Ich habe schon das Forum durchsucht und auch Google gefragt leider ohne wirklich brauchbare Ergebnisse.
    Code:
    //Create The Adapter for the Spinner1
               first = (Spinner) findViewById(R.id.spinner1);
               first.setOnItemSelectedListener(this);
               aa = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
               aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
               first.setAdapter(aa);
             //Create The Adapter for the Spinner2
               second = (Spinner) findViewById(R.id.spinner2);
               second.setOnItemSelectedListener(this);
               bb = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
               bb.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
               second.setAdapter(bb);
    
    Damit erstelle ich meine Spinner, dann noch der Code beim OnItemSelected:
    Code:
    public void onItemSelected(AdapterView<?> parent, View v, int position,
                long id) {
            // TODO Auto-generated method stub
            if(v.getId() == R.id.spinner1)
            {
                String sp1grp = parent.getItemAtPosition(position).toString();
            //selection1.setText(groups[nbr1]);
            //selection2.setText(groups[nbr1+1]);
            }
            if(v.getId() == R.id.spinner2)
            {
                selection2.setText("Error!");
            }
        }
        
        public void onNothingSelected(AdapterView<?> parent) {
               selection1.setText("");
               }
    }
    
    Wie man sieht habe ich es mit den id's probiert leider ohne Erfolg.
     
  2. swordi, 10.01.2010 #2
    swordi

    swordi Gewerbliches Mitglied

    meine idee

    eigenen onItemSelectedListener basteln und dann diesen zuweisen
     
  3. C_T, 10.01.2010 #3
    C_T

    C_T Threadstarter Neuer Benutzer

    Sorry aber ich weiss jetzt gerade echt nicht wie ich das programmieren soll.

    Kann ich nicht einfach irgendwie die ID von dem Spinner holen und dann quasi so:

    if(id_von_spinner == 1)
    {
    Spinner1 wurde ausgewählt;
    }

    ist das nicht möglich?
     
  4. swordi, 10.01.2010 #4
    swordi

    swordi Gewerbliches Mitglied

    warum nicht einfach

    if (v == first)
    ?
     
  5. C_T, 10.01.2010 #5
    C_T

    C_T Threadstarter Neuer Benutzer

    Nein das geht leider nicht, da v gibt Irgend nen Text aus mit ner Zahl, jedoch die Zahl ändert sich mit jedem Item das ich auslese. Bringt mir also nichts.

    Ich probier weiter...
     
  6. swordi, 10.01.2010 #6
    swordi

    swordi Gewerbliches Mitglied

    dann musst wohl selbst einen onSelectedItemListener basteln
     
    C_T bedankt sich.
  7. C_T, 10.01.2010 #7
    C_T

    C_T Threadstarter Neuer Benutzer

    Ich habs geschafft! Ich hab einfach 2 setOnItemSelectedListener gemacht. Da ich gemerkt habe dass wenn ich nur einen hab, geht der immer nur auf den ersten Spinner. Jetzt funktioniert es!!

    Für die, die vlt das gleiche Problem haben, hier meine Lösung:

    Code:
    first.setOnItemSelectedListener(new OnItemSelectedListener()
                {
                    public void onItemSelected(AdapterView<?> parent, View v, int position,
                             long id) {
                         // TODO Auto-generated method stub
                        String sel_grp = first.getSelectedItem().toString();
                        int fav_grp = selection(sel_grp, x);
                        selection1.setText(groups[fav_grp]);
                        selection2.setText(groups[fav_grp+1]);
                     }
                     
                     public void onNothingSelected(AdapterView<?> parent) {
                            selection1.setText("");
                            }
                });
                
                second.setOnItemSelectedListener(new OnItemSelectedListener()
                {
                    public void onItemSelected(AdapterView<?> parent, View v, int position,
                             long id) {
                         // TODO Auto-generated method stub
                       String sel_grp = second.getSelectedItem().toString();
                       int fav_grp = selection(sel_grp, x);
                       selection2.setText(groups[fav_grp]);
                       selection1.setText(groups[fav_grp-1]);
                     }
                     
                     public void onNothingSelected(AdapterView<?> parent) {
                            selection1.setText("");
                            }
                });
    
     
  8. swordi, 10.01.2010 #8
    swordi

    swordi Gewerbliches Mitglied

    jap sag ich ja, dass es so geht. ;)

    ich mache dafür meistens eigene klassen, aber so gehts natürlich auch