0 votos
Hola tengo problemas Binding y su XML, parece que no se lleva bien cuando hay muchos botones, como es el caso, antes cuando estaba utilizando findViewById no tenia problemas para mostrar ese XML.
 
Digo esto por si hay alguna solución para poder utilizar Binding con ese xml con tantos botones.
 
Y la otra pregunta es a raíz de este problema, estoy pensando si se podría utilizar varios Drop-Down, pero que estén concatenados, bueno así creo que se llama en Excel cuando se utilizan varias listas, que muestran varios contenidos dependiendo de lo que se seleccione en una de esas listas.
 
Por ejemplo, crear un DropDown con un listado de países, y dependiendo del país que se ha seleccionado, mostrar en otro DropDown capitales de ese país.
 
Eso se podría hacer ?
Si es así, alguien me puede decir como ?
 
Gracias.
por en Android

1 Respuesta

+1 voto

El drop-down en Android es el spinner, que te recomiendo que eches un vistazo a los ejemplos de: https://developer.android.com/guide/topics/ui/controls/spinner

Por otro lado, no deberías tener ningún problema con la selección del botón, si acaso puedes utilizar el view que te devuelve el getView del Adaptador para inflarlo de manera semejante a como se hace con findViewById, pero para Binding.

Para que puedas comparar, antes con findViewById se hacía así:

    @Override
    public View getView(int posicion, View view, ViewGroup pariente) {
        if (view == null) {
        LayoutInflater vi = (LayoutInflater) contexto.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
            view = vi.inflate(R_layout_IdView, null); 
        }
        
        // Obtener el elemento a utilizar mediante el view:
        TextView texto = (TextView) view.findViewById(R.id.mi_id);
        texto.setText("lo que sea");
        
        return view; 
    }

Con binding es parecido, podría ser así:

   @Override
    public View getView(int posicion, View view, ViewGroup pariente) {
        ListItemBinding binding;
        
        if (view == null) {
            LayoutInflater vi = (LayoutInflater) pariente.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            binding = ListItemBinding.inflate(vi, pariente, false);
            view.setTag(binding);
        }else{
            binding = (ListItemBinding) view.getTag();
        }
        
        // Utiliar un elemento mediante el binding:
        binding.mi_id.setText("lo que sea");
        
        return view;
    }

 

Tienes toda la información sobre binding en: https://developer.android.com/topic/libraries/data-binding/expressions

por
Gracias Ramón, voy a intentarlos, aunque no tengo muy claro si es lo mismo que intento hacer con los resultados que muestre cada drop-down