En función de una determinada selección de ruleta, rellene otra ruleta

Actualmente tengo un problema al tratar de llenar una segunda rueda giratoria en función de la selección de la primera.

Mi primer spinner tendría algo como lo siguiente en el menú desplegable:

Opción1 Opción2 Opción3

Luego hay otra ruleta debajo:

Solo quiero que la Opción1 sea especial, es decir, cuando el usuario elige Opciones1,

la segunda rueda mostrará:

spec1

Si el usuario selecciona la Opción 2 o la Opción 3, muestra esto:

especificación1 especificación2 especificación3.

Probablemente veas a lo que me refiero. Solo si se elige la opción 1, debe haber una opción única en la segunda rueda giratoria.

Aquí está mi código para onCreate hasta ahora:

// creating adapters for both spinners
 ArrayAdapter<Grid> dataAdapter = new ArrayAdapter<Grid>(this,
            android.R.layout.simple_spinner_item, gridArrayList);


    //first drop down spinner here
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    gridSpinner.setAdapter(dataAdapter);

    regions = getResources().getStringArray(R.array.regions_array);

    defaultRegions = getResources().getStringArray(R.array.default_array);

     final ArrayAdapter<String> regionAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, regions);

     final ArrayAdapter<String> defaultAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, defaultRegions); //what should appear if user selected Option2 or Option3.

Aquí está mi código para manejar la selección de la primera rueda giratoria:

 gridSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View v,
                    int position, long rowId) 
            {
                 gridSelect = gridSpinner.getItemAtPosition(position).toString();
                Toast.makeText(LoginActivity.this, gridSelect, Toast.LENGTH_SHORT)
                        .show();

                gridInteger = (int) gridSpinner.getItemIdAtPosition(position);

                switch(gridInteger)
                {
                case 0:
                    regionSpinner.setAdapter(regionAdapter); //hint region adapter has spec1.
                    regionAdapter.notifyDataSetChanged();

                    break;
                default:
                    regionSpinner.setAdapter(defaultAdapter);
                    regionAdapter.notifyDataSetChanged();
                    break;

                }


            }

Si alguien pudiera señalarme en la dirección correcta o posiblemente decirme dónde me estoy equivocando, se lo agradecería mucho. ¡Gracias de nuevo!

preguntado el 27 de julio de 12 a las 15:07

Dado que su código funciona correctamente, ¿puede eliminarlo de la pregunta y publicarlo como respuesta, por favor? pasados ​​unos dias acepto tu respuesta. Hacer eso facilitará que las personas encuentren la solución a este desafío en el futuro. -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.