Mac Systems
- Forum-Beiträge: 1.727
23.01.2010, 15:32:39 via Website
23.01.2010 15:32:39 via Website
Folgende Situation: Ich habe einen Spinner, dieser wird vorselektiert:
Interessanterweise wird der Code des Listeners dennoch aufgerufen, was hier zu einer Exception führt um das verhalten besser sehen zu können:
Kann mir jemand dieses verhalten erklären ? Mir scheint das unlogisch da der Listener nach der Selektion erst gesetzt wird.
Dies sind nur auszuüge aus dem Code ich kann soweit ausschließen das der Listener an anderer stelle noch ausgelöst würde.
mfg,
Mac
PS: Crosspost: http://forum.javacore.de/viewtopic.php?p=63106#63106
1final Spinner unitsSpinner = (Spinner) findViewById(R.id.units_spinner);
2 final ArrayAdapter<WindUnit> continentAdapter = new ArrayAdapter<WindUnit>(this,
3 android.R.layout.simple_spinner_item, WindUnit.values());
4 continentAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
5 unitsSpinner.setAdapter(continentAdapter);
6 final int index = IdentityUtil.indexOf(currentSelectUnit.getId(), WindUnit.values());
7 unitsSpinner.setSelection(index);
8 unitsSpinner.setOnItemSelectedListener(getUnitsListener());
2 final ArrayAdapter<WindUnit> continentAdapter = new ArrayAdapter<WindUnit>(this,
3 android.R.layout.simple_spinner_item, WindUnit.values());
4 continentAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
5 unitsSpinner.setAdapter(continentAdapter);
6 final int index = IdentityUtil.indexOf(currentSelectUnit.getId(), WindUnit.values());
7 unitsSpinner.setSelection(index);
8 unitsSpinner.setOnItemSelectedListener(getUnitsListener());
Interessanterweise wird der Code des Listeners dennoch aufgerufen, was hier zu einer Exception führt um das verhalten besser sehen zu können:
1private OnItemSelectedListener getUnitsListener()
2 {
3 final OnItemSelectedListener selectionHandler = new OnItemSelectedListener()
4 {
5 @Override
6 public final void onItemSelected(final AdapterView<?> parent, final View view, final int position,
7 final long id)
8 {
9 throw new IllegalArgumentException("Unit Lister aufgerufen.");
10 }
11
12 /*
13 * (non-Javadoc)
14 *
15 * @see
16 * android.widget.AdapterView.OnItemSelectedListener#onNothingSelected
17 * (android.widget.AdapterView)
18 */
19 @Override
20 public final void onNothingSelected(final AdapterView<?> arg0)
21 {
22 }
23
24 };
25 return selectionHandler;
26 }
2 {
3 final OnItemSelectedListener selectionHandler = new OnItemSelectedListener()
4 {
5 @Override
6 public final void onItemSelected(final AdapterView<?> parent, final View view, final int position,
7 final long id)
8 {
9 throw new IllegalArgumentException("Unit Lister aufgerufen.");
10 }
11
12 /*
13 * (non-Javadoc)
14 *
15 * @see
16 * android.widget.AdapterView.OnItemSelectedListener#onNothingSelected
17 * (android.widget.AdapterView)
18 */
19 @Override
20 public final void onNothingSelected(final AdapterView<?> arg0)
21 {
22 }
23
24 };
25 return selectionHandler;
26 }
Kann mir jemand dieses verhalten erklären ? Mir scheint das unlogisch da der Listener nach der Selektion erst gesetzt wird.
Dies sind nur auszuüge aus dem Code ich kann soweit ausschließen das der Listener an anderer stelle noch ausgelöst würde.
mfg,
Mac
PS: Crosspost: http://forum.javacore.de/viewtopic.php?p=63106#63106
— geändert am 23.01.2010, 15:39:34
Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.