vuoi
o PayPal
tutte le volte che vuoi
Checkbox è una serie di bottoni ON/OFF (si può selezionare più di una a differenza del
RadioButton).
Esercizio passo passo che guida nell'utilizzo delle componenti di layout :
https://developer.android.com/courses/pathways/android-basics-compose-unit-2-pathway-3
2.4 Navigazione
Ogni schermata può essere intesa come un activity. L'intent è un oggetto di messaggistica che si
utilizza per richiedere
un'azione da un altro componente dell'app. L'intent può inviare Broadcast che l'app può utilizzare
per effettuare determinate
operazione (es: whatsapp quando riceve messaggio broadcast sul fatto che siamo collegati con wi-fi
effettua backup).
Si parla di explicit intent quando specifico azione ben precisa che dovrà fare la mia app.
Si parla di implicit intent quando viene richiamata una activity al di fuori della mia app (non sono in
grado di determinare la
destinazione finale).
27/03/2025
android:text="@{numVittorie}" lavoro con variabili di layout, al cambiamento della variabile
numVittorie cambierà il testo della
componente in cui abbiamo scritto ciò (all'interno del file di layout XML).
Il primo intent è quello che instanzia il main activity. Esiste una cronologia delle activity grazie alla
struttura a pila
che viene utilizzata (FIFO).]
per creare intent esplicito deve prendere l'activity da cui si parte (this, cioè questa activity), mentre
secondo paremetro
è l'activity da lanciare (slide 12).
con uri posso indentificare qualsiasi risorsa.
Spostandosi da una schermata ad un altra, molto spesso si trovanno inviare e ricevere dati.
28/03/2025
intent.getData() ci fornisce la URI inserita prima.
intent.getIntExtra("myKey",0) legge informazione negli extras, più precisamente andando a leggere
quello che è presente nella chiave
"myKey" se non trovi quella chiave lì ritorna valore zero (valore di backup).
Per ritornare i dati all'attività iniziale bisogna:
nella seconda activity devo creare un intent che conterrà tutti i dati(inseriti tramite putExtra ), e
settare a RESULT_OK oppure
RESULT_CANCELED (status), per infine fare il finish() per chiudere activity. Nella main activity
devo assicurarmi che questa possa
ricevere e gestire questi dati (registrare un contratto).
Possiamo avere due file di layout per una determinata activity (un layout per telefono in verticale e
un altro per il telefono in
orizzontale).
--
Menu':
Nell tool bar devo inserirci un menu', altrimenti è vuota (ha solo il nome dell'activity), e poi gestire
le opzioni selezionate.
Il messaggio toast in Android è un breve avviso che compare nella parte inferiore dello schermo per
informare l'utente di un'azione
eseguita dall'app (la durata è a scelta del programmatore).
RecyclerView semplifica la visualizzazione efficiente di grandi set di dati.
I floating context menu appaiono dopo click lungo su una view. Ogni item del menu deve avere id,
che mi permette di capire quale
scelta è stata effettuata dall'utente all'interno del menu.
04/04/2025
Utile da utilizzare solo nel caso di liste lunghe.
Una transazione è un blocco atomico a livello di Android studio (non posso rischiare di comprare
due volte la stessa cosa). In caso
utente volesse tornare indietro nel mezzo di un transazione viene ripulito lo stacco e ritorna al primo
fragment in cronologia. Questo si può
fare tramite opzione “popupTo” nel navigation graph (slide 130 navigation). Il “popupTo” specifica
fino a quale destinazione si desidera tornare
indietro. Questo permette di eliminare i fragment precedenti quando si naviga verso una nuova
destinazione.
ReyclerView 2.5
Contenitore che contiene altri oggetti (ViewGroup). Tramite RecycleView.Adapter facciamo
override di tre funzioni (slide 5->2.5), e permette di
personalizzare la lista. Mi permette di non avere un grosso array di contenitori all’interno della
RAM. I contenitori quando scrollo rimangono
invariati, quello che cambia è il contenuto all’interno. I dati (contenuti) normalmente provengono
da un database o un file esterni. Quando
inizio a scrollare richiamo il onBindViewHolder (viene eseguito in automatico, ogni volta che
facciamo scroll).
08/04/2025
Per rendere iterattivi gli item in una lista inserire un .setOnClickListener. Log.'lettera'è una classe
che permette di effettuare il logginng di
un messaggio (registrare e stampare messaggio di log) associando un livello di gravità del
messaggio.
Tale messaggio verrà visualizzato solo dallo sviluppatore (all'interno di androind studio).
Messaggi di log di onCreate non li posso vedere, solo quelli di onBindViewHolder. I messaggi di
log si possono vedere nel Logcat, posso anche
ListAdapter è una classe base che permette di avere elementi in lista dinamici (regge cancellazione
elementi, non riscrive da capo i viewHolder).
Serve aggiunta nuovi metodi di supporto areContentsTheSame, areItemsTheSame che possono
essere sovvrascritti.
Binding avanzati: inventare nuovi attributi nelle componenti layout per avere personalizzazione
layout, a cui viene associato un binding adapter.
Praticamente una funzione che comporta la modifica di un attributo associato ad un
determinato componente di layout (non serve).
I tre "famosi" metodi onCreateViewHolder(), onBindViewHolder(), getItemCount() vanno inseriti
all'interno dell'adapter. Ricordiamo che il 1°
metodo serve a creare una nuova ViewHolder (layout singolo item), il 2° metodo invece Serve per
legare i dati all'item (cioè popolare la riga con
i dati), mentre l'ultimo a contare il numero di item presenti nella lista.
Negli headers, il sistema tiene in memoria n liste di contenitori.....
Si possono avere anche liste orizzontali, sostituendo al posto di LinearLayoutManager con
GridLayoutManager.
2.6 Jetpack Compose
E' un toolkit di instrumenti che rende più moderne le costruzioni di interfacce grafiche in android,
secondo un modello di programmazione reattiva.
Quello utilizzato prima era un approccio imperativo, mentre quello che utilizzeremo sarà quello
dichiarativo.
Stato : insieme di variabili che descrivono in che stato si trova una determinata activity.
L'interfaccia utente è in funzione dello stato, questa
cambia in base allo stato in cui si trova.