Spinner zeigt keine Liste an

  • Antworten:2
  • Bentwortet
dwjiidnsw
  • Forum-Beiträge: 58

23.03.2019, 20:03:31 via Website

Hallo,
in meiner App möchte ich einen Spinner verwenden. Der erste Eintrag und der Pfeil werden auch angezeigt, nur wenn ich auf den Spinner klicke, kommt keine Liste mit Auswahlmöglichkeiten.

Code für den Spinner:

     spinner = ((Activity) context).findViewById(R.id.spinner);
     spinner.setSelection(0);


    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource
            (this.getContext(), R.array.gridSizes, android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
            String s = (String) spinner.getSelectedItem();
            String tmp[] = s.replaceAll(" ", "").split("x");
            gridSize = Integer.parseInt(tmp[0]);
        }

        public void onNothingSelected(AdapterView<?> adapterView) {
            return;
        }
    });

und die String Ressourcen:

        <string-array name="gridSizes">
        <item>4 x 4</item>
        <item>5 x 5</item>
        <item>6 x 6</item>
        <item>7 x 7</item>
        <item>8 x 8</item>
       </string-array>

Woran liegt das ?

Danke im Vorraus.

— geändert am 24.03.2019, 08:38:36 durch Moderator

Kommentieren
Beste Antwort
dwjiidnsw
  • Forum-Beiträge: 58

24.03.2019, 20:37:01 via Website

Mit dem Spinner funktioniert es immer noch nicht, aber ich habe das Problem jetzt anders gelöst. Stattdessen verwende ich einen Button und wenn man auf den Button klickt, erscheint ein Auswahl Dialog.

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

27.03.2019, 10:47:09 via Website

Hallo also ich würde sagen das dein Context falsch ist.
ArrayAdapter adapter = ArrayAdapter.createFromResource
(this.getContext(), R.array.gridSizes, android.R.layout.simple_spinner_dropdown_item);

Eigentlich reicht this wenn du zb in der onCreate bist.
In einerCallback Methode solltest du den context der activity benutzen. Denn da verweißt this nicht immer auf die avtivity.

Ich erstelle mir eine globale variable im Klassen Rumpf und in der onCreate übergebe ich this.
Dies kannst du dann auch in einer Callback benutzn.

Hilfreich?
Kommentieren