Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿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; } }); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.