Package name: com.example.mislugares
Language: Java ó Kotlin
Minimum API level: API 19 Android 4.4 (KitKat)
NOTA: Deja el resto de los parámetros con su valor por defecto.
2. Pulsa en File > New > New Module. Selecciona Java Library y pulsa Next.
3. Introduce en Library name: MisLugares, como Java pakage name: com.example.mislugares y en Java class name: Lugar. Pulsa el botón Finish. Se creará un nuevo módulo Java dentro de tu proyecto Android.
4. Para Kotlin, en el explorador de proyecto busca la clase Java y, con el botón derecho, selecciona Convert Java File to Kotlin File.
5. Reemplaza el código de la clase Lugar por el siguiente:
Para Java observa cómo se definen los atributos de la clase y como en el constructor se inicializa para un objeto concreto según los parámetros indicados. En estos parámetros no se indica el atributo fecha. Este representa el día y la hora en que visitamos ese lugar por última vez. Se codifica mediante un long (número entero de 64 bits), que supondremos en formato Epoch time o tiempo Unix11. Es decir, número de milisegundos transcurridos desde 1970. El método System.currentTimeMillis() nos devuelve la fecha y la hora actuales en este formato. Por lo tanto, siempre que usemos este constructor, en fecha se almacenará el instante en que el objeto fue creado.
Para Kotlin en el constructor principal indicamos directamente los atributos de la clase y en algunos casos los valores por defecto. Los getters y setters son creados automáticamente. Además, al haber indicado data class se crean otras funciones como toString(). Por lo tanto, podrás saltarte los siguientes dos puntos.
6. Solo para Java, crea los métodos getters y setters para acceder a todos los atributos de la clase. Solo tienes que pulsar con el botón derecho y seleccionar la opción Generate… > Getter and Setter y selecciona todos los atributos mientras mantienes pulsada la tecla Ctrl.
7. Solo para Java, pulsa con el botón derecho sobre el código y selecciona la opción Generate… > toString(). Selecciona todos los atributos y pulsa OK. Se añadirá un método similar a:
NOTA: El significado de @Override se explica más adelante.
8. Dentro del explorador del módulo MisLugares / java / com.example.mislugares pulsa con el botón derecho y selecciona New > Java Class o Kotlin File/Class.
9. Introduce en el campo Name: GeoPunto y pulsa Ok. Reemplaza el código por el siguiente (dejando la línea del package):
El objeto SIN_POSICION será utilizado cuando se quiera indicar que un lugar no tiene posición asignada. Observa que es un objeto de tipo estático. En Java se indica con static y en Kotlin con companion object. Esto significa que solo va a haber una instancia de este objeto creada desde el principio. Para acceder a ella usaremos GeoPunto.SIN_POSICION.
10. Solo para Java, crea en esta clase los métodos getters y setters para acceder a los dos atributos. Igual que antes, pulsa con el botón derecho y seleccionar la opción Generate… > Getter and Setter. Realiza la misma operación para equals() and hasCode().
11. Para Java y Kotlin, crea una nueva clase Java con nombre: Principal. Android Studio no permite que la clase principal esté en Kotlin.
12. Reemplaza el código por el mostrado (dejando la línea del package):
La clase Principal es algo atípica: no tiene atributos ni constructor, únicamente el método main. Cuando en un proyecto existe una clase que tiene un método con este perfil, es el que se llama para comenzar la ejecución. Como parámetros, este método recibe un array de Strings. Esta información tiene interés cuando el programa se ejecuta desde la línea de comandos con parámetros.
13. Pulsa en el botón desplegable a la derecha del botón Run
14. En la nueva ventana, haz clic en el signo + de la esquina superior izquierda y selecciona Application. Aparecerá una nueva configuración de aplicación. Selecciona en Name: mislugares, en Main class: com.example.mislugares.Principal y en Use classpath of module: MisLugares. Pulsa en OK.
15. Pulsa el botón Ejecución
“C\Program ...
Lugar {nombre=Escuela Politécnica Superior de Gandía,
direccion=C/ Paranimf, 1 46730 Gandia (SPAIN),
posicion=longitud:-0.166093, latitud:38.995656, foto=null,
telefono=962849300, url=http://www.epsg.upv.es,
comentario=Uno de los mejores lugares para formarse.,
fecha=1392332854758, valoracion=3.0}
Process finished with exit code 0
http://www.androidcurso.com/index.php/30
1.13.2. Tipos enumerados