He pensado en formas poco elegantes de resolver esto, pero sé que me falta algo.
Mi se onItemSelected
dispara inmediatamente sin ninguna interacción con el usuario, y este es un comportamiento no deseado. Deseo que la interfaz de usuario espere hasta que el usuario seleccione algo antes de hacer algo.
Incluso intenté configurar el oyente en el onResume()
, esperando que eso ayudara, pero no lo hace.
¿Cómo puedo evitar que esto se active antes de que el usuario pueda tocar el control?
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
vacío y dentro onItemSelected
pueda detectar si la Cadena no está vacía startActivity
!