Saltar al contenido

Cómo capturar el evento onClick en Android para un spinner

Este dilema se puede resolver de variadas maneras, pero nosotros te enseñamos la que para nosotros es la solución más completa.

Solución:

En lugar de configurar OnClickListener de la ruleta, intente configurar OnTouchListener y OnKeyListener.

spinner.setOnTouchListener(spinnerOnTouch);
spinner.setOnKeyListener(spinnerOnKey);

y los oyentes:

private View.OnTouchListener spinnerOnTouch = new View.OnTouchListener() 
    public boolean onTouch(View v, MotionEvent event) 
        if (event.getAction() == MotionEvent.ACTION_UP) 
            //Your code
        
        return false;
    
;
private static View.OnKeyListener spinnerOnKey = new View.OnKeyListener() 
    public boolean onKey(View v, int keyCode, KeyEvent event) 
        if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) 
            //your code
            return true;
         else 
            return false;
        
    
;

No trate una rueda giratoria como un botón, los botones tienen eventos onClick. Los giradores tienen eventos onItemSelected.

Debería capturar el evento onItemSelected de Spinner de esta manera:

import android.widget.AdapterView;

Spinner productname_spinner =(Spinner) findViewById(R.id.your_spinner);

productname_spinner.setOnItemSelectedListener(
    new AdapterView.OnItemSelectedListener() 
    public void onItemSelected(AdapterView parent, View view, int pos, long id) 

        Object item = parent.getItemAtPosition(pos);
        System.out.println(item.toString());     //prints the text in spinner item.

    
    public void onNothingSelected(AdapterView parent) 
    
);

En Kotlin, similar a lo siguiente:

mySpinner.onItemSelectedListener = object: OnItemSelectedListener 
    override fun onNothingSelected(parent: AdapterView<*>?) 
        // Do nothing
    
    override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) 
        val selection = parent?.getItemAtPosition(position)
        viewModel.updateSelection(selection as String)
    

Recuerda que te damos el privilegio decir si diste con el hallazgo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *