Ich habe mir ein paar weniger elegante Lösungen überlegt, aber ich weiß, dass ich etwas übersehen muss.
Meine onItemSelected
wird sofort und ohne Interaktion mit dem Benutzer ausgelöst, und das ist ein unerwünschtes Verhalten. Ich möchte, dass die Benutzeroberfläche wartet, bis der Benutzer etwas auswählt, bevor sie etwas tut.
Ich habe sogar versucht, den Hörer in der onResume()
in der Hoffnung, das würde helfen, aber das tut es nicht.
Wie kann ich verhindern, dass diese Funktion ausgelöst wird, bevor der Benutzer das Steuerelement berühren kann?
public class CMSHome extends Activity {
private Spinner spinner;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Heres my spinner ///////////////////////////////////////////
spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.pm_list, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
};
public void onResume() {
super.onResume();
spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
}
public class MyOnItemSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent,
View view, int pos, long id) {
Intent i = new Intent(CMSHome.this, ListProjects.class);
i.putExtra("bEmpID", parent.getItemAtPosition(pos).toString());
startActivity(i);
Toast.makeText(parent.getContext(), "The pm is " +
parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView parent) {
// Do nothing.
}
}
}
3 Stimmen
Sie können sich diese Lösung ansehen, sie ist einfach und praktisch. stackoverflow.com/a/10102356/621951
1 Stimmen
Eine einfache Lösung wäre, den ersten Punkt in
Spinner
leer und innenonItemSelected
können Sie erkennen, ob die Zeichenfolge nicht leer ist, dannstartActivity
!0 Stimmen
Dieses Muster funktioniert richtig stackoverflow.com/questions/13397933/