una significa que para los imagenes imagen como atributos atributo agregar android wpf data-binding

significa - Enlace de datos de Android(similar a WPF)?



seo imagenes wordpress (8)

Enlace de datos nativos

¡Google ha lanzado su biblioteca de enlace de datos nativa!

https://developer.android.com/tools/data-binding/guide.html

Lo cual te permite escribir tus puntos de vista como tales

<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.firstName}"/>

Pero su mecanismo de cableado de eventos en este momento (versión rc1) no puede vincularse a métodos en una clase que se extiende desde Observable (se produce una excepción al compilar, este es un error conocido que se resolverá).

Y seguro que la falta de enlace bidireccional (que no se espera que esté en la primera versión ) es un gran inconveniente.

De todos modos, aquí hay un buen proyecto de muestra para jugar con https://github.com/saleeh93/data-binding-samples

He buscado algunas preguntas similares antes de publicarlas; sin embargo, tengo una pregunta general sobre Android y el enlace de datos (y las otras respuestas que compruebo no me llevaron mucho más lejos ...). Supongamos que tiene una clase Vehículo:

public class Vehicle { private Owner owner; private String brand; //getter and setter for above attributes... }

y aquí está la clase Propietario ...

public class Owner { private String name; }

Ahora - Recientemente estuve investigando el patrón MVVM (ModelView-ViewModel) como lo emplea Microsofts WPF. Lo que me hizo preguntarme: Suponiendo que quisiera vincular el nombre de propiedad de mi objeto propietario que es hijo del objeto Vehículo, ¿habría alguna forma estándar en Android para lograr esto? Suponiendo también que deba validar la entrada antes de poder actualizar el Modelo.

Estaba imaginando los siguientes componentes (asumiendo MVVM):

  • La Vista (una Actividad) no contiene lógica de aplicación, por lo que está más o menos vacía
  • Un ViewModel manejaría la instancia del objeto Vehículo y realizaría acciones en él
  • El propio modelo se vería como el código que publiqué antes, totalmente ajeno a View y ViewModel

Ahora cuando agregue mis EditTexts, TextViews, etc. a la vista, quiero que se vinculen a ciertas propiedades de mi objeto de contexto (Vehículo en este caso) ... Mhhh si mi pregunta no está clara o si necesita más información. déjame saber :) gracias de antemano.

PD: Creo que las personas que están familiarizadas con WPF pueden ser ahora lo que quiero decir. Yo mismo acabo de leer sobre WPF y descubrí que es una buena manera de manejar cosas.

PPs Conozco el proyecto vinculante de Android , pero me preguntaba si existe algún tipo de enfoque integrado en Android o tal vez alguna convención que alguien esté siguiendo :) esto realmente es más una cuestión de teoría vinculante, supongo ...


¡Android M proporcionará una potente biblioteca para el enlace de datos!

Está disponible ahora en la https://developer.android.com/tools/data-binding/guide.html .

Se ve increíble dentro de los archivos xml y java :

<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.firstName}" />

Java Bean:

public class User { private final String firstName; private final String lastName; public User(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } public String getFirstName() { return this.firstName; } public String getLastName() { return this.lastName; } }

Unión:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity); User user = new User("Test", "User"); binding.setUser(user); }


Además de la respuesta de Oleksii, para aquellos que quieren ver un proyecto de muestra (parece que Google aún no ha proporcionado ningún proyecto de muestra), acabo de hacer uno y lo envié a GitHub.

Algunas notas:

  • classpath "com.android.databinding:dataBinder:1.0-rc0" no funciona para mí, entonces uso classpath group: ''com.android.databinding'', name: ''dataBinder'', version: ''1.0-rc0''
  • Necesita Java 7 +
  • Si obtiene errores, intente limpiar / reconstruir.
  • No olvide implementar android.databinding.Observable o extends BaseObservable si necesita la posibilidad de notificar cuándo cambian los datos.
  • minSdkVersion es 7. Es una lib de soporte.
  • Mi proyecto no sigue MVVM, solo usa el enlace de datos. Se agregó una muestra de MVVM.

Bueno, mi proyecto Android-Binding está intentando hacer un enlace de datos a través de un diseño XML. Debido a que no hay un método incorporado proporcionado por Google (y no puedo prever que Google lo haga), esa es la razón por la que comencé este proyecto.


Desde que hizo su pregunta por primera vez, el paisaje ha cambiado mucho.
Lo más importante es que Stuart Lodge nos dio MVVMCross .

Este proyecto proporciona un marco de desarrollo móvil mvvm multiplataforma construido sobre Silverlight para WP7, Mono para Android y MonoTouch para iOS, y el marco WinRT XAML para aplicaciones de Windows 8 Store Este proyecto hace un uso extensivo de bibliotecas de clase portátil para proporcionar una cruz mantenible aplicaciones nativas de plataforma C #.

Proporciona enlace de datos en sus Views contra ViewModels

Por ejemplo, habilita lo siguiente:

<EditText android:layout_width="fill_parent" android:layout_height="wrap_content" local:MvxBind="{''Text'':{''Path'':''Query'',''Mode'':''TwoWay''}}" />

Recursos:

Página de Github: https://github.com/slodge/MvvmCross

Presentación: http://slodge.blogspot.co.uk/2012/12/mvvmcross-video-presentation-xaminar.html

Y un tutorial de introducción muy bueno: creación de aplicaciones de Android con MVVM y enlace de datos


Leyendo un poco sobre este tema, acabo de encontrar RoboBinding , un "marco de modelo de presentación de datos vinculantes" para Android.

De forma similar al proyecto vinculante de Android, puede vincular propiedades (unidireccionales o bidireccionales) y eventos a sus vistas en XML utilizando un espacio de nombres adicional.

Aunque tampoco es un enfoque integrado, podría ser una gran ayuda para usted.


Me doy cuenta de que esto es algunos años más tarde, pero me enfrenté a los mismos problemas que encontré a continuación, que pueden ayudar a disminuir la carga.

RoboBinding - maneja el enlace - como se menciona anteriormente RoboGuice - hace la inyección de dependencia

Hay una muy buena presentación en video de RoboBinding que ayudará a explicar qué y cómo.

No estoy afiliado a ninguno de los dos esfuerzos, pero se ven prometedores para aquellos que todavía intentan resolver los problemas vinculantes, especialmente en el código involucrado. RoboBinding también maneja actualizaciones bidireccionales.


No hay nada "horneado" en el SDK de Android que proporciona la funcionalidad equivalente de enlace de datos que se encuentra en MS WPF. Google proporciona una interfaz de nivel inferior para los diversos dispositivos con Android. Hasta la fecha, los marcos de aplicaciones de nivel superior no han surgido de la comunidad de desarrollo de Android. (En mi humilde opinión, se necesitaría una compañía monstruosa como Google para crear tal cosa, dadas todas las diferentes restricciones en un marco para todos los diversos dispositivos Android).

Puede crear un conjunto de clases de enlace de datos en su propia aplicación para manejar sus necesidades del patrón MVVM. Los "enlazadores de datos" establecerían los controladores de eventos relevantes en los objetos Android View y ejecutarían algún método apropiado en sus objetos ViewModel en respuesta. También traducirían los eventos de cambio (que defina) en ViewModel en las asignaciones de propiedades apropiadas en los objetos de View.

Si eso resulta ser útil para su aplicación es una decisión. Mi suposición es que requeriría más esfuerzo escribir las clases de Databinder que simplemente conectar los manejadores de eventos de View de nivel más bajo directamente. Los marcos son útiles principalmente cuando no tiene que escribirlos usted mismo.