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.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Un enfoque para lograr esto podría ser mantener un conjunto de opciones y eliminar la opción seleccionada de ese conjunto cuando se selecciona en un spinner. Luego, al poblar el próximo spinner, utilizar el conjunto actualizado de opciones como origen, de manera que la opción seleccionada previamente ya no sea una opción.

    Aquí hay un código de ejemplo que demuestra este enfoque:

    Spinner spinner1 = findViewById(R.id.spinner1);
    Spinner spinner2 = findViewById(R.id.spinner2);
    Spinner spinner3 = findViewById(R.id.spinner3);
    
    String[] choices = {"A", "B", "C", "D"};
    
    // configurar el primer spinner con todas las opciones
    ArrayAdapter<string> adapter1 = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, choices);
    spinner1.setAdapter(adapter1);
    
    // escuchar cuando se selecciona un elemento en el primer spinner
    spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
            // eliminar la opción seleccionada del conjunto
            String selectedChoice = choices[position];
            List<string> updatedChoices = new ArrayList<>(Arrays.asList(choices));
            updatedChoices.remove(selectedChoice);
            choices = updatedChoices.toArray(new String[0]);
    
            // configurar el segundo spinner con las opciones actualizadas
            ArrayAdapter<string> adapter2 = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_spinner_item, choices);
            spinner2.setAdapter(adapter2);
        }
    
        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {
            // implementación requerida
        }
    });
    
    // configurar el tercer spinner con las opciones originales
    ArrayAdapter<string> adapter3 = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, choices);
    spinner3.setAdapter(adapter3);
    

    En este ejemplo, cuando se selecciona un elemento en el primer spinner, su opción correspondiente se elimina del conjunto “choices”. Luego, se crea un nuevo adaptador para el segundo spinner utilizando el conjunto “choices” actualizado. El tercer spinner utiliza el conjunto “choices” original (ya que no se ha realizado ninguna selección aún). Al utilizar un conjunto para almacenar las opciones, podemos actualizarlo fácilmente y utilizarlo para poblar los spinners según sea necesario.

Comments are closed.