La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT UI PERSONALIZZATE.

Presentazioni simili


Presentazione sul tema: "* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT UI PERSONALIZZATE."— Transcript della presentazione:

1 * R AMAN K AZHAMIAKIN O SCAR Z AMBOTTI @oskarnrk G IOVANNI D E F RANCESCO @jibbolus @ ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT UI PERSONALIZZATE E M ENU

2 * * 1.ArrayAdapter Custom basilare 2.Menu 3.Un Form personalizzato 4.ActionMode 5.Dialog Sommario

3 * * 1.Creare il layout che comporrà la riga 2.Estendere ArrayAdapter (o BaseAdapter) Servono per caratterizzare le liste in modo da renderle piu’ utili e/o piu’ belle. Di seguito sono elencati i passi da eseguire per crearne una: Gli adapter personalizzati:

4 * * Un esempio di riga:

5 * * Un esempio di Adapter:

6 * * Per usarli Bisogna: ●creare un layout per il menu dentro la cartella res/menu/ ●nel metodo onCreate chiamare il metodo setHasOptionMenu(true) per dire che si ha bisogno del menu. ●eseguire l’ Override del metodo onCreateOptionsMenu(...) per mettere il necessario layout appartenente al menu ●eseguire l’ Override de metodo onOptionsItemSelected(...) qui dentro vanno eseguite le operazioni Servono per dare all’ utente delle azioni da compiere con gli oggetti visibili sullo schermo. I Menu

7 * * Un esempio di layout:

8 * * Come dovrebbe risultare il codice:

9 * * Form Creare / modificare i contenuti. Gli elementi ●EditText: campo di testo. ●Spinner: menu a tendina. Ha il suo adapter. ●CheckBox: valore Boolean. ●RadioGroup: selezionare un elemento. ●Button: bottoni per gestire azioni (ad esempio, salvare o cancellare). ●...

10 * * Form personalizzato <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/background_light" android:orientation="vertical" > <EditText android:id="@+id/editText_nome" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="@string/hint_nome" android:inputType="text" > <Spinner android:id="@+id/spinner_tipo" android:layout_width="match_parent" android:layout_height="wrap_content" /> <CheckBox android:id="@+id/checkBox_sposato" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/cb_sposato" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/button_annulla" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="@android:string/cancel" /> <Button android:id="@+id/button_salva" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="@android:string/ok" />

11 * * Form Avviare form: Come un fragment o un activity! Fragment formFragment = FormFragment.newInstance(); FragmentTransaction transaction = getFragmentManager().beginTransaction(); transaction.replace(android.R.id.content, formFragment); transaction.addToBackStack(null); transaction.commit(); Per avere ‘Callback’ FormFragment ff = new FormFragment(); ff.setTargetFragment((Fragment) this, 0);... ((OnSaveCallback) getTargetFragment()).save(nome, descrizione); getFragmentManager().popBackStack();

12 * * Dialog Puoi aprire i dialog dalla tua activity usando il metodo showDialog(int). I dialog creati da una activity sono collegati ad essa e sono in primo piano finché l’utente non li chiude. La base per i dialog è la classe Dialog, anche se di solito si usa una delle sue sottoclasse, come AlertDialog, ProgressDialog, DatePickerDialog o TimePickerDialog.

13 * * // nuovo dialogo new AlertDialog.Builder(getActivity()) // titolo.setTitle("Avviso") // messaggio.setMessage("Sei sicuro di voler cancellare questo elemento?") // bottone 'positive'.setPositiveButton(android.R.string.ok, new OnClickListener() { public void onClick(DialogInterface dialog, int which) { // cancellare elementi selezionati } }) // bottone 'negative'.setNegativeButton(android.R.string.cancel, null) // crea oggetto.create() /// visualizza oggetto.show();

14 * * Dialog personalizzati Poi basta usare il metodo dialog.findViewById() per trovare gli elementi del layout, in modo da assegnare o leggere valori, ad esempio. Il titolo del dialog può essere assegnato con il metodo setTitle(). I curiosi possono indagare un altro modo di fare i dialog: i DialogFragment ! Per creare dialog personalizzati si crea un layout e lo si assegna con il metodo dialog.setContentView() Ricorda le activity, no?

15 * * Introdotte con Android “Honeycomb” 3.0 (API Level 11) vengono usate al posto dei menu’ contestuali. In pratica la ActionBar cambia a seconda degli oggetti selezionati in una lista o griglia. ContextualMenuContextualMenu Le ActionMode

16 * * ContextualMenuContextualMenu Per usare l’ActionMode su una lista bisogna: 1.Includere la libreria support v7 2.Usare android.support.v7.app.ActionBarActivity 3.Cambiare lo stile: 4.Impostare mListView.setChoiceMode(ListView.CHOICE_MODE_QUALCOSA); che serve per dire che gli elementi della vostra lista accettano di essere selezionati 5.Creare un layout apposito per il menu di selezione 6.Creare una ActionMode.Callback (e’ un interfaccia) che risponda alle azioni. 7.Far partire l’ ActionMode con startSupportActionMode(ActionMode.Callback)

17 * * Un esempio...

18 * * Un esempio di avvio...


Scaricare ppt "* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT UI PERSONALIZZATE."

Presentazioni simili


Annunci Google