1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Herausfinden welcher Spinner gerade ausgewählt ist

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von C_T, 10.01.2010.

  1. C_T, 10.01.2010 #1
    C_T

    C_T Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    10.01.2010
    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

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    meine idee

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

    C_T Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    10.01.2010
    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

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    warum nicht einfach

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

    C_T Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    10.01.2010
    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

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    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

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    10.01.2010
    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

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    jap sag ich ja, dass es so geht. ;)

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

Diese Seite empfehlen