Spinner individuell befüllen?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Spinner individuell befüllen?

    Ich habe da mal wieder eine Frage,...........diesmal Thema "Spinner".

    Der geplante Ablauf ist wie folgt:

    Ich habe einen Spinner, in welchem ich etwas auswählen kann. Je nach Auswahl öffnet sich dann ein weiterer Spinner, welcher mit passenden Themen zum ersten Spinner befüllt ist.

    Momentan habe ich es so:

    Spinner 1 wird direkt angezeigt, während der zweite Spinner zu Anfang nicht sichtbar ist, und erst sichtbar wird, wenn genau dieses Thema ausgewählt wird.

    Meine Frage ist nun, kann man den Spinner 2 "universell" nutzen, und je nach Auswahl in Spinner 1 mit dem passenden Inhalt befüllt, oder brauche ich für jedes Thema einen eigenen Spinner?
    Und wenn ich einen universellen Spinner einsetzen kann, wie kann ich diesen dann mit den richtigen Themen befüllen UND wie kann ich es am besten umsetzen, dass beim anklicken auch dass richtige geöffnet wird?

    Momentan habe ich es über "Switch" gelöst und case 1-5. Wenn ich aber mehrere Einträge habe, hat case 6,7,8,..... ja keine Funktion.
  • So, ich melde mich mal zurück :)

    Alsooooo, "individuell" befüllen haut hin. ABER wie sieht es denn aus, wenn ich einen Spinner z.B. mit 10 Strings anstatt 4 befüllen? Wie kann ich alles so anpassen, dass es sich anpasst sobald sich der Inhalt vergrößert? Und wie mache ich es, dass ich auch richtig darauf zu greifen kann? Ich hoffe ihr wisst wie ich dass meine?! :)
  • Mal angenommen ich klicke beim ersten Spinner auf das dritte ITEM und darauf hin öffnet sich Spinner 2 und wird mit 10 ITEMS gefüllt. Diese 10 ITEMS müssen dann ja verlinkt werden.


    Nun klicke ich beim ersten Spinner auf ein anderes ITEM und wieder wird Spinner 2 mit (anderen) ITEMS gefüllt. Diese müssen dann ja auch wieder verlinkt werden. Da der zweite Spinner ja immer der gleiche ist, der nur anderes befüllt wird, muss ja auch der Zugriff auf diese ITEMS geändert werden.

    Also quasi
    SPINNER 2 -> ARRAY-LISTE EINS = ZUGRIFFE geregelt in LISTE EINS
    SPINNER 2 -> ARRAY-LISTE FÜNF = ZUGRIFF geregelt in LISTE FÜNF
    ...

    Ich hoffe du weißt wie ich dass meine?!

    Momentan habe ich Spinner eins über eine Schleife laufe, klicke ich auf ITEM 1, öffnet sich ein weiterer Spinner mit einer Liste. Klicke ich hier nun auf ITEM 1, öffnet sich beispielsweise ein Fenster.

    Ich stelle mir sowas vor wie eine Methode.

    ITEM 1 -> METHODE 1 = Passende Array-List inklusive passender Verknüpfungen um Spinner 2 zu befüllen. Etwas verständlicher? :(
  • Hallo
    Ich habe schon verstanden wie du das mit den Spinnern meist.
    Nur was du beim aus wählen des zweiten Item machen willst sagst du nicht.

    Wenn du jedes mal eine andere Aktion ausführen willst, wird das schwierig.
    Wenn ZB. der erste 5 Items der Zweite jeweils 10 Items hat, sind das 50 case Anweisungen im Klicklistner.


    Brauchst du nur den ausgewählten String um ihn zB. Anzuzeigen, in der DB speichern, …
    Ist das einfacher


    Java-Quellcode

    1. spinner2.setOnItemSelectedListener(new OnItemSelectedListener(){
    2. @Override
    3. public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    4. String sSelected=parent.getItemAtPosition(position).toString();
    5. Toast.makeText(this,sSelected,Toast.LENGTH_SHORT).show();
    6. }
    7. @Override
    8. public void onNothingSelected(AdapterView<?> parentView) {
    9. // Your code here
    10. }
    11. });
    Alles anzeigen
    >Momentan habe ich Spinner eins über eine Schleife laufe, klicke ich auf ITEM 1, öffnet sich ein weiterer Spinner mit einer Liste. Klicke ich hier nun auf ITEM 1, öffnet sich beispielsweise ein Fenster.

    Wie Über eine Schleife laufen? Zeige mal deinen Code so kommen wir hier wohl nicht weiter.
    Frage soll sich das Fester immer Öffnen?
    Ein Feedback auf Tipps ist auch schön. :P

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von jogimuc ()

  • Ach so meinste dass ^^ Was geöffnet werden soll später weiß ich noch nicht ganz. Bisher werden zu Testzwecken erstmal nur TextViews in CardViews gefüllt etc.

    spinnerState (Spinner Eins)
    Der Schleifen-Code sieht z.B. wie folgt aus:

    Quellcode

    1. spinnerState.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    2. @Override
    3. public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    4. if (position == 0){
    5. spinnerLaws.setVisibility(View.INVISIBLE);
    6. textLaws.setText(R.string.start_empty);
    7. } else if (position == 1){
    8. spinnerLaws.setVisibility(View.VISIBLE);
    9. } else if (position == 2){
    10. spinnerLaws.setVisibility(View.VISIBLE);
    11. } else if (position == 3){
    12. spinnerLaws.setVisibility(View.VISIBLE);
    13. } else if (position == 4){
    14. spinnerLaws.setVisibility(View.VISIBLE);
    15. } else if (position == 5){
    16. spinnerLaws.setVisibility(View.VISIBLE);
    17. } else if (position == 6){
    18. spinnerLaws.setVisibility(View.VISIBLE);
    19. } else if (position == 7){
    20. spinnerLaws.setVisibility(View.VISIBLE);
    21. } else if (position == 8){
    22. spinnerLaws.setVisibility(View.VISIBLE);
    23. } else if (position == 9){
    24. spinnerLaws.setVisibility(View.VISIBLE);
    25. } else if (position == 10){
    26. spinnerLaws.setVisibility(View.VISIBLE);
    27. } else if (position == 11){
    28. spinnerLaws.setVisibility(View.VISIBLE);
    29. } else if (position == 12){
    30. spinnerLaws.setVisibility(View.VISIBLE);
    31. } else if (position == 13){
    32. spinnerLaws.setVisibility(View.VISIBLE);
    33. } else if (position == 14){
    34. spinnerLaws.setVisibility(View.VISIBLE);
    35. } else if (position == 15){
    36. spinnerLaws.setVisibility(View.VISIBLE);
    37. } else {
    38. // DO NOTHING !!!
    39. }
    Alles anzeigen

    spinnerLaws (Spinner Zwei)

    Quellcode

    1. spinnerLaws.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    2. @Override
    3. public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    4. if (position == 1){
    5. textLaws.setText(R.string.homepage);
    6. }
    7. }
    8. @Override
    9. public void onNothingSelected(AdapterView<?> parent) {
    10. }
    11. });
    Alles anzeigen

    Hier sind die Inhalte klar. Wenn ich jetzt aber Spinner Eins anders befülle, brauche ich ja eine (in meinem Fall) andere Schleife, welche übereinstimmt mit dem Inhalt des ersten Spinners.

    Gibt es hier Unterschiede was später geöffnet werden soll?!

    Gibt es einen einfacheren bzw. eleganteren Weg als eine Schleife, oder ist mein Code jetzt schon soweit in Ordnung?!