¡Hola! (Disculpas por la larga publicación aquí)Android Library Project - Definición de clases
Estoy escribiendo algunas aplicaciones que se basarán esencialmente en el mismo código.
Cada aplicación tendrá sus diferencias, algunas tendrán nuevas actividades, todas tendrán diferentes recursos asignados.
Estoy intentando usar un proyecto de la biblioteca Android para poder colocar todo el código común en un solo lugar, por lo que los cambios importantes solo se deben realizar una vez y todos los proyectos se actualizarán.
Ahora, los recursos son una solución fácil, ya que solo puedo definir cada recurso en la aplicación principal y estos anularán los del proyecto de la biblioteca siempre que las convenciones de nomenclatura permanezcan iguales.
Ahora, mi pregunta es ¿cómo hago lo mismo pero para las clases? Por ejemplo, tendré una vista base como un contenedor para código común en todas las vistas. en esto, lanzo varias actividades. ¿Qué sucede si las tres aplicaciones necesitan iniciar una actividad diferente, ya que contendrán diferentes interfaces y funciones? ¿Cómo voy a hacer esto? El proyecto de la biblioteca nunca sabrá que el proyecto principal desea usar una actividad diferente, como ya se ha compilado.
Tengo un par de soluciones que he pensado, pero quiero saber si alguien más tiene algunas ideas. Sería de gran ayuda para cualquier comentario aquí:
la actividad en el Proyecto Biblioteca que se pondrá en marcha almacena una referencia a la clase para ser cargado, que se definirá en la aplicación principal en su lanzamiento . Esto fue cuando el proyecto de la biblioteca llama a esta actividad, puede cargar lo que se le dijo.
Dejo toda la funcionalidad que no cambiará dentro de la actividad de proyectos de la biblioteca. Luego extiendo esta actividad y anulo el onCreate para hacer lo que necesito aquí (como cargar diferentes diseños, configurar vistas, etc.). Ahora esto tiene un inconveniente, ya que tengo que definir la mayoría de los puntos de entrada en mi aplicación principal en lugar de en el proyecto de la biblioteca.
Espero que sigas mi problema aquí. Por favor, pregunta si he explicado esto mal.
Gracias,
Adam
Creo que puedo haber encontrado una solución. Al usar la reflexión y el método setClassName para Intents, el Proyecto de Biblioteca no necesita tener la instancia de Clase disponible. La aplicación principal ahora puede definir estas clases, y el proyecto de la biblioteca podrá llamarlas. Parece que funciona bien hasta ahora! – Mimminito
Me encontré con el mismo problema. Podrías poner tu código de reflexión ya que creo que también resolverá mi problema. –