Casa Social media Come usare Frammenti per programmare la tua app Android - dummies

Come usare Frammenti per programmare la tua app Android - dummies

Video: Android Jetpack: Introducing Navigation Component 2025

Video: Android Jetpack: Introducing Navigation Component 2025
Anonim

L'interfaccia utente nell'esempio di app Android qui utilizzato ha tre pannelli: un elenco di elementi, un pannello di dettagli che descrive l'elemento selezionato nell'elenco e un pannello dettagli in profondità. Su un piccolo schermo dello smartphone, ogni pannello potrebbe essere un'attività separata. Ma uno schermo tablet in modalità orizzontale ha spazio per più di un pannello.

L'immagine sotto mostra questa app con due dei tre pannelli. Il riquadro a sinistra mostra un elenco di componenti di Android SDK. Il pannello a destra mostra una descrizione di qualsiasi componente scelto nell'elenco sulla sinistra. (La descrizione è in realtà le prime frasi della documentazione dell'SDK del componente.) Questo modello dettagliato sul lato destro fa parte di molte interfacce utente.

Due frammenti associati a un'attività.

Per creare il display, si crea un'attività. L'attività ha due frammenti: un frammento a sinistra e un altro a destra. Il pannello di sinistra mostra lo stesso frammento durante l'esecuzione dell'app, quindi puoi dichiararlo nel file di layout dell'attività. Il pannello di destra visualizza un frammento alla volta, ma il frammento cambia durante l'esecuzione dell'app. Quindi dichiari un layout del frame nel pannello di destra.


Nel codice sopra, l'androide: layout_ qualunque sia l'attributo divida lo schermo in due metà: una metà per l'elemento frammento e l'altra metà per l'elemento FrameLayout. La strategia con questi attributi è di iniziare assegnando un minimo di zero pixel per ciascun elemento. Ovviamente, zero pixel significa nessuna larghezza (che è la stessa cosa di essere invisibile). Per mantenere invisibili le due metà del layout, assegna valori pari a zero layout_weight uguali alle due metà. Con valori di peso diversi da zero, ciascuna metà si espande per riempire lo spazio disponibile nel layout.

L'uso del nome di classe completo del frammento (con allmycode, frag. ComponentNamesFragment) è intenzionale. Un nome abbreviato (come ComponentNamesFragment) non taglierà la senape.

Nel caso ve lo stiate chiedendo, i dettagli integrati di AndroidElementBackground offrono un aspetto uniforme per cose come la metà destra (cose che mostrano dettagli su un oggetto che l'utente ha selezionato).

Il codice di attività principale dell'app è impressionantemente poco interessante.

pacchetto com. allmycode. Frag; importa Android. app. Attività; importa Android. os. Bundle; public class AllPurposeActivity estende Activity {@Override protected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R.disposizione. main);}}

Il codice seguente contiene la classe ComponentNamesFragment. In virtù del layout nel primo esempio, Android pianta un ComponentNamesFragment sul lato sinistro dello schermo del dispositivo.

pacchetto com. allmycode. Frag; importa Android. app. FragmentManager; importa Android. app. FragmentTransaction; importa Android. app. ListFragment; importa Android. os. Bundle; importa Android. vista. Vista; importa Android. widget di. ArrayAdapter; importa Android. widget di. Visualizzazione elenco; public class ComponentNamesFragment estende ListFragment {final static String [] COMPONENTS = {"Activity", "Service", "BroadcastReceiver", "ContentProvider"}; @Override public void onActivityCreated (Bundle savedInstanceState) {super. onActivityCreated (savedInstanceState); setListAdapter (nuovo ArrayAdapter (getActivity (), Android. layout R. simple_list_item_1, COMPONENTS));} @Override public void onListItemClick (ListView l, Visualizza v, int index, long id) {// Crea frammento con indice DocsFragment docsFragment = nuovo DocsFragment (); Bundle args = Helper. getBundleWithIndex (indice); docsFragment. setArguments (args); // Cancella lo stack posteriore FragmentManager fragmentManager = getFragmentManager (); int backStackEntryCount = fragmentManager. getBackStackEntryCount (); for (int i = 0; i 

La classe nel codice sopra estende la classe ListFragment di Android. Un ListFragment è un frammento che visualizza un elenco. All'inizio del ciclo di vita del frammento, il codice nell'esempio precedente imposta un list adapter (più specificamente un ArrayAdapter) per il frammento. Quindi quanto presto è "presto"?

Il primo parametro del costruttore ArrayAdapter è un contesto. Ma aspetta! A differenza di un'attività, un frammento non è un contesto. Quindi non è possibile utilizzare la parola chiave this per il primo parametro del costruttore ArrayAdapter.

Fortunatamente, un frammento ha un metodo getActivity. Una chiamata a getActivity acquisisce l'attività a cui è collegato il frammento. Quindi, per il primo parametro del costruttore ArrayAdapter, puoi chiamare getActivity. Ovviamente, non è possibile chiamare getActivity finché il frammento non è associato a un'attività esistente. Ecco perché il metodo onActivityCreated del frammento viene sovrascritto sopra. Le chiamate Android onActivityCreated dopo il collegamento del frammento e la chiamata del metodo onCreate dell'attività. Quindi tutto funziona come previsto.

L'androide. app. La classe dei bisnonni delle classi di attività è Android. soddisfare. Contesto. Ma l'androide. app. La classe genitore della classe Framment è semplicemente vecchia java. Lang. Oggetto. Pertanto, nel codice di un'attività, la parola chiave si riferisce a un contesto. Ma nel codice di un frammento, la parola chiave non si riferisce a un contesto.

Nell'esempio sopra, il costruttore per ArrayAdapter ha tre parametri.

Il primo parametro è il contesto - quel parametro spiacevole che ti costringe a mettere il costruttore nel metodo onActivityCreated.

Il secondo parametro è simple_list_item_1 - un layout Android standard.

Il layout simple_list_item_ 1 crea l'aspetto che vedi sul lato sinistro dell'immagine. Android ha molti di questi layout standard. Per una carrellata dei layout disponibili, visita il sito per gli sviluppatori di Android.

Il terzo parametro è la raccolta di elementi che verranno visualizzati nell'elenco.

In questo esempio, tali elementi provengono dall'array COMPONENTS, dichiarato nello stesso esempio.

Come un ListActivity, un ListFragment ha un metodo onListItemClick. Puoi rispondere a un clic lavorando con DocsFragment, FragmentTransaction e FragmentManager:

DocsFragment rappresenta il lato destro dell'immagine sopra.

Una transazione di frammenti è un insieme di cose che fai con i frammenti. Ad esempio, l'impostazione per sostituire un frammento con un altro è una transazione.

Un gestore di frammenti fa ciò che suggerisce il nome. Gestisce gli arrivi e le partenze dei frammenti.

Come usare Frammenti per programmare la tua app Android - dummies

Scelta dell'editore

Vantaggi di base della rete - manichini

Vantaggi di base della rete - manichini

Se la verità viene detta, le reti di computer sono un problema da impostare. Perché i vantaggi di avere una rete rendono la pena di crearne uno utile. Non è necessario essere un dottorato di ricerca per comprendere i vantaggi del networking. Le reti riguardano esclusivamente la condivisione. Nello specifico, le reti riguardano la condivisione di tre elementi: informazioni, risorse, ...

Biometria L'accettazione, la privacy e la legge - manichini

Biometria L'accettazione, la privacy e la legge - manichini

La tecnologia biometrica non è affatto universalmente accettata da tutti gli utenti. Ci sono una serie di considerazioni sociali e legali che danno ad ogni organizzazione una pausa prima di fare il salto a capofitto nell'implementazione di un sistema biometrico. Le persone sono più a loro agio con i sistemi di raccolta biometrici che sono i meno intrusivi. Scanner per retina e nasi elettronici sono ...

Biometria Nozioni di base - manichini

Biometria Nozioni di base - manichini

La biometria non è roba da fantascienza. Puoi trovare una dozzina di modi più o meno efficaci per utilizzare la biometria per identificare qualcuno, ognuno dei quali si divide in due classi: la biometria fisiologica misura una parte specifica della struttura o della forma di una porzione del corpo di un soggetto. La biometria comportamentale è più interessata a come ...

Scelta dell'editore

Come creare un nuovo dizionario personalizzato in Excel 2007 - dummies

Come creare un nuovo dizionario personalizzato in Excel 2007 - dummies

In Excel 2007, è possibile creare dizionari personalizzati da utilizzare quando si esegue il controllo ortografico dei fogli di lavoro. Utilizzare il pulsante Aggiungi al dizionario nella finestra di dialogo Controllo ortografico per aggiungere parole sconosciute a un dizionario personalizzato. Per impostazione predefinita, Excel aggiunge queste parole a un file dizionario personalizzato denominato CUSTOM. DIC, ma è possibile creare una nuova personalizzazione ...

Come creare un componente aggiuntivo da un file di cartella di lavoro Excel Excel normale in VBA - modi di dire

Come creare un componente aggiuntivo da un file di cartella di lavoro Excel Excel normale in VBA - modi di dire

Sebbene sia possibile convertire qualsiasi cartella di lavoro di Excel in un componente aggiuntivo, non tutte le cartelle di lavoro traggono vantaggio da questa conversione. Una cartella di lavoro senza macro rende un componente aggiuntivo inutile. In effetti, gli unici tipi di cartelle di lavoro che traggono vantaggio dall'essere convertiti in un componente aggiuntivo sono quelli con macro. Ad esempio, una cartella di lavoro costituita da macro generiche (Sub ...

Come creare una nuova cartella di lavoro in Excel 2010 - dummy

Come creare una nuova cartella di lavoro in Excel 2010 - dummy

Se si lavora in Microsoft Excel 2010 e vuoi iniziare a lavorare in un nuovo file di cartella di lavoro di Excel, puoi facilmente creare una nuova cartella di lavoro. Per fare ciò, puoi usare un comando nella scheda File o una scorciatoia da tastiera. Fare clic sulla scheda File. Excel visualizza la visualizzazione Backstage, in cui è possibile accedere ai comandi relativi ai file. ...

Scelta dell'editore

Usa lo strumento Gomma in Adobe Illustrator CS5 - manichini

Usa lo strumento Gomma in Adobe Illustrator CS5 - manichini

Adobe Illustrator Creative Suite 5 (Adobe CS5) Illustrator è utilizzato per rimuovere rapidamente aree di grafica con la stessa facilità con cui si cancellano i pixel in Photoshop, accarezzando con il mouse su qualsiasi forma o gruppo di forme. Facendo doppio clic sullo strumento Gomma, è possibile definire il diametro, l'angolo e la rotondità della gomma. Se stai usando un ...

Trasforma gli strumenti in Adobe Illustrator CS5 - dummies

Trasforma gli strumenti in Adobe Illustrator CS5 - dummies

I più popolari strumenti di trasformazione in Adobe Creative Suite 5 (Adobe CS5) Illustrator - Rifletti, scala, inclina, rimodella e Trasformazione libera: sono facili da usare e modificano rapidamente la tua illustrazione. Lo strumento Rifletti Niente è simmetrico, giusto? Forse no, ma gli oggetti non creati simmetricamente in Illustrator possono sembrare off-kilter. Utilizzando lo strumento Rifletti, si ...

Quando utilizzare Adobe CS5 Illustrator - dummies

Quando utilizzare Adobe CS5 Illustrator - dummies

Utilizzando Adobe Creative Suite 5 (Adobe CS5) Illustrator anziché Photoshop , ottieni diversi benefici. Potresti aver sentito che Illustrator è migliore per la grafica vettoriale, ma perché e che altro porta? Illustrator può salvare ed esportare immagini nella maggior parte dei formati di file. Scegliendo di salvare o esportare, è possibile creare un ...