es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Antecedentes propios sobre el elemento seleccionado en mi girador.

Utilizo PowerSpinner en mi aplicación (https://github.com/skydoves/PowerSpinner).
Mi problema es que quiero tener mi propio color de fondo en el elemento seleccionado. Sé cómo hacer esto en un spinner normal, pero no puedo hacerlo en PowerSpinner.
Material tiene un ejemplo de cómo implementar un adaptador personalizado, pero está escrito en Kotlin y no tengo idea sobre kotlin.
¿Cuál es la versión en Java para el siguiente código?

class MySpinnerAdapter(
powerSpinnerView: PowerSpinnerView) : RecyclerView.Adapter<myspinneradapter.myspinnerviewholder>(),
PowerSpinnerInterface {}

¿Puedes ayudarme a implementar mi propio color de fondo en PowerSpinner?
¡Gracias de antemano!</myspinneradapter.myspinnerviewholder>

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en Java, puedes implementar tu propio color de fondo en PowerSpinner de la siguiente manera:

    1. Crea un archivo XML de diseño personalizado para el elemento de tu spinner que incluya el color de fondo que deseas para el elemento seleccionado.
    2. Crea una clase de adaptador personalizado que extienda PowerSpinnerAdapter y anula el método getView para inflar el diseño personalizado y establecer el color de fondo del elemento seleccionado.

    public class MySpinnerAdapter extends PowerSpinnerAdapter<myspinneritem> {
        private int selectedBackgroundColor;
    
        public MySpinnerAdapter(Context context, List<myspinneritem> items, int selectedBackgroundColor) {
            super(items);
            this.selectedBackgroundColor = selectedBackgroundColor;
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View view = super.getView(position, convertView, parent);
            if (position == getSelectedIndex()) {
                view.setBackgroundColor(selectedBackgroundColor);
            } else {
                view.setBackgroundColor(Color.TRANSPARENT);
            }
            return view;
        }
    }
    
    1. En tu actividad, establece el adaptador personalizado y el color de fondo seleccionado en la instancia de PowerSpinnerView.
    List<myspinneritem> items = new ArrayList<>();
    // Agrega elementos a la lista
    
    PowerSpinnerView powerSpinnerView = findViewById(R.id.power_spinner);
    MySpinnerAdapter adapter = new MySpinnerAdapter(this, items, Color.BLUE);
    powerSpinnerView.setAdapter(adapter);
    

    Esto te permitirá mostrar tu propio color de fondo en el elemento PowerSpinner seleccionado.

Comments are closed.