2011-05-01 12 views
10

He puesto todo el código de enlace para eventos de UI en OnCreate(). Ha hecho que mi OnCreate() sea enorme.mejores prácticas para manejar eventos de IU

¿Existe un patrón para implementar eventos de IU en android? ¿Puedo agregar métodos en el archivo Ver XML y luego puedo poner todo el código del controlador en otro lugar?

En pocas palabras, creo que estoy preguntando cómo puedo implementar el patrón MVVM con el código de la aplicación de Android?

+0

Si piensan que el patrón MVVM y lo que les pido es 2 cosas diferentes, háganmelo saber que voy a actualizar mi pregunta. – Gainster

+0

+1; Esto es más como una pregunta de programación basada en eventos/Java. ¡Buena suerte con tu búsqueda! :) –

+0

MVVM framework: http://code.google.com/p/android-binding/ – xandy

Respuesta

5

cosas que hago:

  1. Mantenga todas las funciones onClick en el XML. Evita mucho desorden en el código de Java.
  2. Inicializa los detectores de eventos como miembros de la clase de actividad en lugar de mantenerlos en una función. No me gustan muchas llaves en mi código. Me confunde.
  3. Si mis adaptadores de lista se vuelven demasiado grandes, los mantengo en una clase separada en lugar de como miembro de la clase de actividad y luego mantengo todos los oyentes de vista allí en el adaptador.
  4. para no crear demasiadas funciones onClick veces me guardo una función como onNavigatonClick y luego usar view.getId() para ver qué botón se hizo clic. Como XML no se comprueba para llamadas de función válidas, conduce a errores de tiempo de ejecución si su nombre de función es incorrecto.
  5. Si una vista en particular necesita mucho código de interacción de UI, creo una vista personalizada con un GestureDetector para manejar las interacciones de UI.

Supongo que esto es bastante básico ya que aún no tengo mucha experiencia con Java.

5

En 1.6 y posteriores puede especificar los métodos onClick in your layout XML file para recortar un poco la grasa. Generalmente lo oculto en un método initUi() que tengo mi llamada al método onCreate. De esta forma, al menos, onCreate es más fácil de leer.

+0

puede encontrar el código en el siguiente enlace http://stackoverflow.com/questions/5848207/binding-events-on- oncreate – Gainster

0

onCreate suele ser el mejor lugar para llamar a setContentView y configurar oyentes, pero el código para manejar las interacciones del usuario normalmente va en las rutinas OnClick, OnTouch, onKey, etc.

Tal vez si publicaste tu código podríamos ver lo que has hecho?

1

Muchas buenas respuestas a esto ya. :)

Si está utilizando Android 1.6 o posterior, es posible que encuentre la nueva API fragments útil para organizar y dividir sus actividades en varias unidades lógicas.