¿Hay alguna manera de usar setOnClickListener con un Spinner de Android?

Java.lang.RuntimeException es "No llame a setOnClickListener para un AdapterView. Probablemente quiera setOnItemClickListener", pero eso no es correcto. Estoy usando setOnItemClickListener para hacer algunas cosas basadas en la nueva selección, pero también necesito hacer algunas cosas antes de que el usuario cambie la selección. Específicamente, estoy recopilando datos para cada selección que necesita ser guardada en un archivo antes de pasar a otra selección, ya que la otra selección está asociada con diferentes conjuntos de datos. ¿Hay alguna manera de usar setOnClickListener con un Spinner de Android?

spinner.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Do some stuff before the user changes the selection ... spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { // Do some stuff based onItemSelected ... 

2 Solutions collect form web for “¿Hay alguna manera de usar setOnClickListener con un Spinner de Android?”

Tendrá que establecer el oyente de clic en la vista subyacente (normalmente, un TextView con id: android.R.id.text1) de la hiladora. Para hacerlo:

  • Crear un Spinner personalizado
  • En el constructor (con atributos) crear el hilandero, proporcionando el diseño android.R.layout.simple_spinner_item
  • Hacer un findViewById (android.R.id.text1) para obtener el TextView
  • Ahora configure el onClickListener en el TextView

Puede replicar el evento onclick utilizando eventos ontouch

  this.spinner=(Spinner)findViewById(R.id.spinner); this.spinner.setClickable(false); this.spinner.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { Log.v(TAG, "spinner touch"); //replicating a click if(event.getAction() == MotionEvent.ACTION_UP){ v.playSoundEffect(android.view.SoundEffectConstants.CLICK); } return true; } }); 
  • Tema predeterminado de Spinner a EditarTexto android
  • Android: ¿Cómo vincular a spinner a la lista de objetos personalizados?
  • Hacer clic en el elemento giratorio dentro de la ventana emergente causa WindowManager $ BadTokenException
  • Cómo crear editable spinner en android?
  • Rellene Spinner del origen de matriz de cadena, con un String ArrayAdapter
  • Modificar el tamaño de un Android Spinner Drop down tamaño de la parte?
  • Spinner no envuelve texto - ¿esto es un error de Android?
  • Establecer el modo spinner en XML
  • Spinner error en SetOnItemSelectedListener
  • Cómo cambiar el color del texto del hilandero
  • Spinner con sub-spinner no funciona como se esperaba
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.