Hey folks, ich habe derzeit in meiner App einen NavigationDrawer eingebaut, dieser kann auch Spinner Items fassen. Diese Spinner Items haben natürlich einen OnItemSelectedListener, und die Methode onItemSelected springt andauernd an, auch ohne das ich auf eins der Items klicke. Zum prüfen mache ich bei sowas immer einen Toast hinein, diesen erkennt man am schnellsten.
Hier mein NavigationDrawer und ganz oben ein SpinnerItem...
[Blockierte Grafik: http://preview.slick.pics/FT0ay9z45.png]
der Listener springt zum Beispiel an sobald die App gestartet wird, ich vermute sobald der NavigationDrawer erstellt wird. Desweiteren springt er an wenn ich im NavigationDrawer nach unten un wieder hoch scrolle ( ich habe sehr viele Einträge ), also sobald das SpinnerItem nach oben hinaus geschoben wird, und wieder herein kommt.
Das alles ist natürlich ziemlich nervig, da diese Items ja irgendwann Activities starten oder Fragmente tauschen.
Hier mein Code...
if (dItem.isSpinner()) {
drawerHolder.headerLayout.setVisibility(LinearLayout.INVISIBLE);
drawerHolder.itemLayout.setVisibility(LinearLayout.INVISIBLE);
drawerHolder.spinnerLayout.setVisibility(LinearLayout.VISIBLE);
List<CustomSpinnerItem> userList = new ArrayList<CustomSpinnerItem>();
// for (int i = 0; i < dItem.entries.length; i++) {
// userList.add(new CustomSpinnerItem(i % 2 == 0 ? R.drawable.user1 : R.drawable.user2, dItem.entries[i],
// "[email protected]"));
// }
userList.add(new CustomSpinnerItem(R.drawable.user1, "Ahamed Ishak",
"ishakgmail.com"));
userList.add(new CustomSpinnerItem(R.drawable.user2, "Brain Jekob",
"brain.jgmail.com"));
CustomSpinnerAdapter adapter = new CustomSpinnerAdapter(context,
R.layout.custom_spinner_item, userList);
drawerHolder.spinner.setAdapter(adapter);
drawerHolder.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Toast.makeText(context, "User Changed", Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
Toast.makeText(context, "Nothing selected", Toast.LENGTH_SHORT).show();
}
});
}
Alles anzeigen
Ich habe schon versucht einen OnItemClickListener einzubauen, der Compiler bringt keine Fehler aber sobald ich dann meine App starte, crasht diese mit dem Fehler das man mit einem Spinner kein OnItemClickListener verwenden kann.
Wie kann ich es also erreichen das meine Einträge im Spinner nur bei einem Click darauf das machen was sie sollen?
LG proto