102 lines
3.3 KiB
Markdown
102 lines
3.3 KiB
Markdown
## Apuntes Android Studio (Generales)
|
|
|
|
### Archivo Manifest (AndroidManifest.xml)
|
|
|
|
El propósito de éste archivo es aportar información al compilador, al sistema operativo y a la tienda de aplicaciones. Su ubicación es en la raíz del proyecto.
|
|
|
|
Obligatoriamente debe contener:
|
|
|
|
- Componentes de la app (activities, services, etc)
|
|
- Intent-filter, le especifica al sistema como debe interactuar con esa activity, en función de [atributo](https://genol.es/andintent) que declaremos en el elemento action.
|
|
- [Permisos necesarios](https://genol.es/manperm)
|
|
- Hardware y software requeridos para su funcionamiento (API)
|
|
|
|
#### Ejemplo Manifest
|
|
> AndroidManifest.xml
|
|
```xml
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:tools="http://schemas.android.com/tools">
|
|
<!-- Componentes de la app -->
|
|
<application>
|
|
<activity>
|
|
<intent-filter>
|
|
<action/>
|
|
<category/>
|
|
</intent-filter>
|
|
</activity>
|
|
<service></service>
|
|
<receiver></receiver>
|
|
<provider></provider>
|
|
</application>
|
|
<!-- Permisos necesarios -->
|
|
<uses-permission android:name="PERMISSION-TO-GET"/>
|
|
<!-- Hardware requerido -->
|
|
<uses-feature android:name="HW-TO-USE" android:required="true"/>
|
|
<!-- Versiones de API en las que funciona la app -->
|
|
<uses-sdk android:[min|target|max]SdkVersion="1"/>
|
|
</manifest>
|
|
```
|
|
|
|
[Documentación oficial](https://genol.es/manifest)
|
|
|
|
### Placeholders
|
|
|
|
Para usar placeholders en lugar de hacer hardcode en la lógica de java, se usan ficheros de recursos. En ellos se codifican los strings incluyendo los placeholders.
|
|
|
|
Al llamar al método getString() de la clase abstracta [Context](https://genol.es/andcontext), se le pasa como argumento la referencia al recurso a usar, y el dato que va a sustituir el placeholder del recurso.
|
|
|
|
#### Ejemplo placeholder
|
|
|
|
> string.xml
|
|
```xml
|
|
<resources>
|
|
<string name="texto_completo">Ejemplo de %1$s</string>
|
|
</resources>
|
|
```
|
|
|
|
> code.java
|
|
```java
|
|
String sustituto_placeholder = "Programación";
|
|
System.out.println(getString(R.string.texto_completo, sustituto_placeholder));
|
|
```
|
|
|
|
> Salida
|
|
```
|
|
Ejemplo de Programación
|
|
```
|
|
|
|
[Documentacion oficial](https://genol.es/placeholders)
|
|
|
|
### Ciclos de vida
|
|
|
|
Con el fin de manejar la transición entre las diferentes etapas, la clase Activity dispone de 6 métodos que se ejecutan bajo ciertas condiciones.
|
|
|
|
- onCreate()
|
|
- Se ejecuta en el momento de la creación de la activity
|
|
- onStart()
|
|
- Se ejecuta cuando se presenta la activity al usuario
|
|
- onResume()
|
|
- Se ejecuta cuando se reanuda la activity y vuelve a primer plano
|
|
- onPause()
|
|
- Se ejecuta cuando se va a pasar la activity a estado de inactividad
|
|
- onStop()
|
|
- Se ejecuta cuando la activity deja de ser visible para el usuario (cuando se cambia de app)
|
|
- onDestroy()
|
|
- Se ejecuta justo antes de que se destruya la activity (puede quedar en segundo plano)
|
|
|
|
### Acceso a los recursos
|
|
|
|
Para acceder a los recursos (Activities, colores, strings, etc), se utiliza la superclase R.
|
|
|
|
> code.java
|
|
```java
|
|
Button xmlButton = findViewById(R.id.xmlActivity);
|
|
this.getWindow().setTitle(getString(R.string.titulo));
|
|
```
|
|
|
|
### Listeners
|
|
|
|
Un Listener es un objeto que se utiliza para detectar eventos.
|
|
|
|
### Funciones Lambda |