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 2024

Video: Android Jetpack: Introducing Navigation Component 2024
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

Come utilizzare la notazione oggetto script Java nelle app iOS - dummies

Come utilizzare la notazione oggetto script Java nelle app iOS - dummies

Notazione oggetto javaScript (JSON) è diventato lo standard di fatto in termini di rappresentazione dei dati nelle app iOS. È possibile utilizzare JSON per trasferire dati sul Web e come formato per il salvataggio e il recupero di dati di lunga durata. JSON è al contempo leggibile e facile da capire per le macchine. I dati in JSON possono essere inclusi in uno ...

Come usare Frammenti per programmare la tua app Android - dummies

Come usare Frammenti per programmare la tua app Android - dummies

L'interfaccia utente nel L'esempio di app per Android qui utilizzato ha tre pannelli: un elenco di elementi, un pannello di dettagli che descrive l'elemento selezionato nell'elenco e un pannello di 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 ...

Come utilizzare Xcode Instruments per raccogliere dati per le app iOS - dummies

Come utilizzare Xcode Instruments per raccogliere dati per le app iOS - dummies

Xcode fornisce uno strumento per sviluppatori che consente la traccia dinamica e la profilazione del codice iOS per aiutarti a comprendere il comportamento congiunto sia del codice dell'app che del sistema operativo. Si chiama Instruments. Per utilizzare questo strumento, segui questi passaggi: Scegli Xcode → Apri strumento di sviluppo → Strumenti. Viene visualizzata la finestra Strumenti che mostra una raccolta di modelli. Tu ...

Scelta dell'editore

Filosofia Argomenti da studiare per il Miller Analogies Test (MAT) - dummies

Filosofia Argomenti da studiare per il Miller Analogies Test (MAT) - dummies

You non dovremo sfuggire a qualsiasi confuso testo di filosofia per fare bene con la filosofia sul MAT. Per eccellere nelle analogie MAT sulla filosofia, tutto ciò che devi sapere sono i principali filosofi della storia, i loro lavori e alcuni termini di base della filosofia. Termini filosofici che appaiono nel test MAT Spazzolate le vostre conoscenze ...

Come applicare la conoscenza della certificazione PHR / SPHR sul lavoro - dummy

Come applicare la conoscenza della certificazione PHR / SPHR sul lavoro - dummy

Dopo aver Con successo ottenuto la certificazione PHR / SPHR, il tuo ruolo sul lavoro sta per cambiare. Non è solo perché ora hai le iniziali accanto al tuo nome. Il processo di preparazione ti ha insegnato nuove cose e, come professionista consumato, inizierai a cercare cambiamenti nel tuo gruppo di lavoro. Queste modifiche si applicano in ...

Passando la Parte I del GED - dummies

Passando la Parte I del GED - dummies

Parte I delle Arti del linguaggio, Writing Test ti chiede di leggere e quindi rivedere e modificare i documenti che possono includere informazioni sulle procedure e materiale sul posto di lavoro. Questo test non è malvagio. Solo perché non hai preso la grammatica per anni non significa che non lo sai. Probabilmente sai più di quanto pensi. Le domande sono tutte ...

Scelta dell'editore

Come allineare il contenuto della tabella in colonne e righe in Dreamweaver - dummies

Come allineare il contenuto della tabella in colonne e righe in Dreamweaver - dummies

Pulire l'allineamento degli elementi in colonne e righe rende il tuo tavolo pulito e facile da leggere. Raggiungere quell'aspetto in Dreamweaver può essere complicato perché non si ha il massimo controllo in HTML di un programma come Excel, in cui è possibile allineare i numeri al punto decimale, ad esempio. In un ...

Come allineare elementi con float in Dreamweaver - dummies

Come allineare elementi con float in Dreamweaver - dummies

I designer spesso allineano un'immagine, un tag, o un altro elemento a sinistra oa destra di una pagina Web in Dreamweaver e quindi avvolgere qualsiasi testo o altro contenuto intorno a quell'elemento. L'immagine è allineata a destra della colonna in modo che il testo si sposti accanto a essa a sinistra. In ...

Come verificare la compatibilità CSS in Adobe Dreamweaver CS6 - dummies

Come verificare la compatibilità CSS in Adobe Dreamweaver CS6 - dummies

È Importante assicurarsi che Adobe Il sito Web di Dreamweaver CS6 viene visualizzato correttamente e in modo coerente su tutti i browser più diffusi, come Internet Explorer, Firefox, Chrome e Safari. Sebbene la maggior parte dei browser moderni abbia adottato un supporto abbastanza uniforme per le proprietà CSS2 (e alcuni CSS3), i progettisti dovrebbero comunque testare le loro pagine in una varietà di browser e browser ...