Come dichiarare un’attività nel manifesto e come usare gli intent filter
Per poter creare una nuova attività in Java occorre estendere la classe Activity fornita da Android. In XML invece, bisogna comunicare al sistema la presenza di una nuova attività e per poterlo fare bisogna inserirla all’interno dell’AndroidManifest.xml. Un esempio di registrazione di attività all’interno del manifesto di un’applicazione è il seguente:
<manifest xmlns:android="http://schemas.
android.com/apk/res/android"
package="com.example.helloworlddatrevo" ... >
<application ... >
<activity android:name="NuovaAttivitàDatrevo" ... >...
</activity>
//...
</application>
</manifest>
Il tag XML <activity> viene utilizzato all’interno del tag <application>. Il tag activity può avere moltissimi attributi, dall’esempio si può vedere che uno di questi è android:name che viene utilizzato per indicare il nome dell’attività (se è esterna al package in cui ci troviamo bisogna specificare l’intero path). Ecco alcuni degli attributti di <activity>:
- label. Si tratta di uno degli attributi fondamentali di un’attività, label viene utilizzato dal sistema come riferimento all’attività e viene mostrato all’utente. Essendo di tipo stringa, è consigliabile inserire il suo valore all’interno del file strings.xml ed inserire nell’attributo il riferimento alla stringa. Un piccolo esempio:
<activity
android:label="@string/NuovaAttivitàDatrevo_label"> - icon. Questo attributo consente di specificare un’icona per l’attività appena creata. Come per label, anche in questo caso è preferibile separare i valori dal codice, inseriremo quindi l’icona nella cartella res/drawable ed inseriremo in icon un suo riferimento:
<activity
android:icon="@drawable/NuovaAttivitàDatrevo_icon"> - excludeFromRecents. Utilizzando questo attributo l’attività non apparirà nell’elenco della attività utilizzate di recente.
<activity
android:excludeFromRecents> - screen. Consente di scegliere e forzare un determinato orientamento dello schermo (verticale, orizzontale, ecc.).
<activity
android:screenOrientation> - theme. Quest’attributo di activity permette di cambiare il tema grafico dell’attività.
<activity
android:theme>
Per conoscere tutti gli attributi del tag <activity> si può fare riferimento alla documentazione ufficiale di Android.
Diversi tipi di intent-filter: Action, Category e Data
All’interno del tag <activity></activity> possono essere inseriti nuovi tag come l’intent-filter che abbiamo visto nella lezione 9:
<intent-filter> . . .</intent-filter>
</activity>
Gli intent rappresentano le operazioni che un’applicazione deve seguire quando vengono richieste. In XML, un intent-filter accetta tre tipi di figli:
- Action, consente di individuare gli intent che richiedono una determinata azione.
<action android:name="nome-azione"> - Category, individua gli intent che appartengono ad una determinata categoria:
<category android:name="nome-categoria"> - Data, questo attributo individua gli intent che contengono dati di un determinato tipo:
<data android:mimeType="nome-tipo-mime">
<data android:scheme="nome-schema-url">
Due intent-filter molti utilizzati in Android sono l’azione android.intent.action.MAIN e la categoria android.intent.category.LAUNCHER che consentono di identificare l’azione come possibile attività principale (main) dell’applicazione. Per fissare meglio il concetto, ecco un esempio di attività definita come main:
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Indice | Lezione Precedente – Lezione Successiva |