Ich habe mir weniger elegante Wege ausgedacht, um das zu lösen, aber ich weiß, dass mir etwas fehlen muss.
Mein onItemSelected
Feuer wird sofort ohne Interaktion mit dem Benutzer ausgelöst, und dies ist ein unerwünschtes Verhalten. Ich möchte, dass die Benutzeroberfläche wartet, bis der Benutzer etwas auswählt, bevor er etwas tut.
Ich habe sogar versucht, den Listener in der einzurichten, in der onResume()
Hoffnung, dass das helfen würde, aber das tut es nicht.
Wie kann ich verhindern, dass dies ausgelöst wird, bevor der Benutzer die Steuerung 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.
}
}
}
Spinner
leer zu machen und darin zu onItemSelected
erkennen, ob der String dann nicht leer ist startActivity
!