Enlace de datos de Android con un adaptador personalizado
Estoy tratando de utilizar las características de vinculación de datos de Android con un adaptador personalizado y un ListView. Tengo problemas para reemplazar el método getView
del adaptador personalizado:
public class ChecksAdapter extends ArrayAdapter<Check> { public ChecksAdapter(Context context, ObservableList<Check> checks) { super(context, R.layout.check, checks); } @Override public View getView(int position, View convertView, ViewGroup parent) { CheckBinding binding = DataBindingUtil.inflate( LayoutInflater.from(getContext()), R.layout.check, parent, false); binding.setCheck(this.getItem(position)); // Return what? } }
Así que mis preguntas son:
- Utilizar el complemento Android DataBinding en paralelo con Google Plugin de servicios
- Error al importar el tipo de lista en un archivo xml mediante la vinculación de datos de Android
- Cómo vincular un layout_width y layout_height mediante el enlace de datos en Android
- Enlaces de datos con oyentes personalizados en la vista personalizada
- Vinculación de datos de los errores del estudio Android de Kotlin
- ¿Dónde obtengo el elemento
View
que debo regresar? O en otras palabras, ¿cómo puedo enlazar el objeto a una vista inflada / convertida? - ¿Cómo puedo volver a usar
convertView
cuando uso enlace de datos? - ¿Es esta la manera correcta de implementar esto? La guía no es muy clara en ListViews
Aquí está la única referencia de ListViews en la guía:
Si está utilizando elementos de enlace de datos dentro de un adaptador ListView o RecyclerView, puede preferir utilizar:
ListItemBinding binding = ListItemBinding.inflate(layoutInflater, viewGroup, false); //or ListItemBinding binding = DataBindingUtil.inflate(layoutInflater, R.layout.list_item, viewGroup, false);
- Enlace de datos de Android ObservableList problema de comportamiento
- ¿Cómo puedo pasar varios argumentos a través de xml para un setter personalizado cuando se utiliza el enlace de datos de Android
- Android databinding error de prueba de unidad Error al analizar las opciones del compilador de enlace de datos. Params:
- Cómo acceder a la vista dentro de un diseño incluido mediante el enlace de datos
- DataBinding: ¿Cómo obtener el recurso por id dinámico?
- Android spinner Data Binding utilizando XML y mostrar los valores seleccionados
- El enlace de datos de Android no funciona con los atributos <merge>
- Establecer el color del texto mediante el enlace de datos en Android
De acuerdo con esto , debe devolver binding.getRoot()
.
View getRoot ()
Devuelve la vista más externa en el archivo de diseño asociado con la vinculación. Si este enlace es para un archivo de diseño de combinación, se devolverá la primera raíz en la etiqueta de combinación.
Debe hacer lo siguiente para desplazarse sin problemas.
@Override public View getView(int position, View convertView, ViewGroup parent) { CheckBinding binding; if(convertView == null) { binding = DataBindingUtil.inflate( LayoutInflater.from(getContext()), R.layout.check, parent, false); convertView = binding.getRoot(); } else { binding = (CheckBinding) convertView.getTag(); } binding.setCheck(this.getItem(position)); convertView.setTag(binding); return convertView; }
ItemTickFilterBinding mFilterBinding; if (convertView==null) { mFilterBinding= DataBindingUtil.inflate( LayoutInflater.from(mContext), R.layout.item_tick_filter, parent, false); convertView.setTag(mFilterBinding); } else { mFilterBinding=(ItemTickFilterBinding)convertView.getTag(); }
- Android View onSaveInstanceState no se llama
- Cómo agrupar las notificaciones de Android como whatsapp?