No se puede encontrar el GETTER para el atributo 'app: vm' con el tipo de valor Boolean
Estoy tratando de usar nativa de 2 vías de enlace de datos de Android en mi control personalizado
Así que tengo algo así en xml
- 'No se puede encontrar la variable de símbolo' en la vinculación de datos android incluyen diseño
- Enlace de datos: enlaza método único de escucha con múltiples métodos
- Data Binding Android - El parámetro de tipo T tiene límites superiores incompatibles: ViewDataBinding y MainActivity
- Posible motivo de "Error: no se pueden generar carpetas de vista java.lang.NullPointerException"
- Spinner enlace de datos de 2 vías
<layout> <data> <variable name="item" type="Boolean"/> </data> ... <my.control app:vm="@={item}"/> ... </layout>
Tenga en cuenta que es cuestión de @={}
– enlace nativo de 2 vías.
Y algo así en el código:
class MyControl extends RelativeLayout{ ... @BindingAdapter("app:vm") public static void setVm(View v, VM vm){...} }
Mis preguntas – ¿cómo debo definir getter para mi viewModel? No encuentro ninguna orientación al respecto. He intentado diferentes enfoques – escribir getter personalizado, getters estática, pero el error sigue siendo el mismo.
- No se puede resolver la clase de enlace de datos de Android
- Android: la etiqueta de vista no es correcta en la vista: null (CursorAdapter y DataBinding)
- Edittext cursor restablecer a la izquierda después de la actualización de datos de datos de Android
- Vinculación de datos de Android vs findViewById para el rendimiento
- DataBinding en android
- Android - DataBinding - ¿Cómo y cuándo se generarán las clases de enlace?
- Cómo crear vinculación de datos personalizados en android? (Estudio del androide)
- Banda de datos Android @BindingConversion falla para int a cadena
Tomado de aquí , bajo "Rolling Your Own":
Necesitará un poco más de código extra para obtener el enlace de datos bidireccional trabajando con clases personalizadas. Lo más importante, necesitará definir un @InverseBindingMethod
:
@InverseBindingMethods({ @InverseBindingMethod(type = MyControl.class, attribute = "vm"), })
En este caso, el nombre del getter coincide con el nombre del atributo "getVm" para "app: vm." (Cambiado a su ejemplo)
Por favor, visite el blog vinculado, que tiene más información sobre ese tema, incluyendo la vinculación de un atributo cambiado de evento.
- Cómo minimizar el tamaño de la caché de la aplicación de Android
- Cómo leer el archivo json de la carpeta de activos cuando se prueba por Espresso?