Estoy creando un proyecto de biblioteca para varias aplicaciones de Android. Todas las aplicaciones tienen alguna funcionalidad común que deseo incluir en el proyecto de biblioteca, pero las funciones del proyecto de biblioteca requieren el uso de constantes específicas de la aplicaciónAndroid, ¿la mejor manera de proporcionar constantes específicas de aplicaciones en un proyecto de biblioteca?
Estoy buscando una forma de proporcionar a las funciones de la biblioteca los nombres de las constantes y permitir que cada aplicación para definir ellos
un ejemplo de una constante aplicación específica y cómo se utiliza en el proyecto de biblioteca
public class AppConstants {
public static final long APP_ID = 6;//Needs to be set for each app
}
public static long getCurrentAppId(Context context) {
return getLongPreference(context, CURRENT_APP_ID_KEY, AppConstants.APP_ID);
}
Esto es sólo un ejemplo de aproximadamente 60 constantes que necesitan ser definida para cada aplicación para un gran número de funciones de la biblioteca
Obviamente, yo podría tan sólo importar/incluir el archivo app_constants.java específica del proyecto, pero esto no es posible en los archivos de proyecto de la biblioteca, ya que no tiene ni idea acerca de las aplicaciones específicas (con razón)
Así ¿Cuál es la mejor manera de que cada aplicación específica anule las constantes?
actualización me llevó mucho tiempo decidir cuál de las excelentes respuestas se me ha proporcionado con el mejor satisfizo mis necesidades (gracias a todos) Al final he elegido la solución XML. Particularmente no me gusta porque estorba hasta mis recursos Aplicaciones y me consideró seriamente el uso de la solución de interfaz, pero la solución XML funciona muy bien
Si define los recursos con el mismo ID en su biblioteca y su aplicación se obtiene el valor de la aplicación si eso existe, de la biblioteca de lo contrario. Así que ese es un enfoque muy bueno para los valores que desea sobrescribir por aplicación. Como está utilizando el sistema de recursos, puede incluso hacer valores por configuración (paisaje vs retrato, etc.) – zapl