Android Studio - Spinner funktioniert nicht

kugelwasser

Lieutenant
Registriert
Aug. 2012
Beiträge
1.020
Hallo,
folgendes:
Ich habe einen spinner, indem verschiedene Kanäle auftauchen sollen (ARD, ZDF, etc.). Zu Beginn ist der Spinner allerdings noch leer, erst wenn der benutzer auf "Scan Channels" klickt, wird eine http-request Anfrage an ein Server gestellt und dieser antwortet mit den ganzen Kanälen. So das funktioniert jetzt auch soweit das die Kanäle dann auch in dem spinner angezeigt werden, allerdings passiert absolut gar nichts wenn ich dann im spinner auf einen Kanal draufklick. Laut debugger geht der nicht in die onItemSelected Funktion rein. Folgender Quellcode:

Code:
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);

        // Inflating Widgets
        spinner = (Spinner) findViewById((R.id.spinner));

        // Creating adapter for spinner
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, channel_names);

        // Drop down layout style - list view with radio button
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // attaching data adapter to spinner
        spinner.setAdapter(dataAdapter);
    }

Code:
    public class SpinnerActivity extends Activity implements AdapterView.OnItemSelectedListener {

        public void onItemSelected(AdapterView<?> parent, View view,
                                   int pos, long id) {
            // An item was selected. You can retrieve the selected item using
            // parent.getItemAtPosition(pos)
            spinner.setOnItemSelectedListener(this);
            String item = parent.getItemAtPosition(pos).toString();

            switch(item) {
                case ("RTL2"):
                    sendSpecificCommandToTvServer("channelMain=8a");
            }

        }

        public void onNothingSelected(AdapterView<?> parent) {
            // Another interface callback
        }
    }

Ich glaube irgendwie dass das
Code:
spinner.setOnItemSelectedListener(this);
irgendwie an der falschen Stelle ist. Wo anders macht die kacke aber ne Fehlermeldung...
 
Das setOnItemSelectedListener gehört noch in die erste Codebox, direkt nachdem du die Spinner-View gefunden hast. Innerhalb des onItemSelected macht das keinen Sinn, da der Code ohne setOnItemSelectedListener nie aufgerufen wird.
Das du die Fehlermeldung bekommst liegt daran, dass die View nicht gefunden wird, du also eine Methode auf ein null-Objekt aufrufst.
 
Zurück
Oben