I.I.S. ‘’G. COSSALI’’ - ORZINUOVI FRAGMENT, ACTION BAR, TOOL BAR Marzo 2017 Prof. Dario Tomasoni 1 IMPOSTAZIONE 30 min = Fragment + Esempio/Esercizio; 10 min = pausa; 30 min = ActionBar + Esempio/Esercizio; 30 min = ToolBar + Esempio/Esercizio; 10 min = pausa; 40 min = personalizzazione App ‘’Forza4’’; 2 Fragment • Componente che permette di suddividere in ‘’frammenti’’ l’interfaccia grafica di un’activity; • Primo esempio con ‘’Master/Detail Flow’’, ovvero una lista di items che selezionati mi mostrano un contenuto informativo; • Esempio ‘’FragmentProva’’ … 3 FragmentProva 1 • DummyContent.java = classe che permette la definizione della lista dei dati da visualizzare; • ITEMS = sono gli elementi da visualizzare definiti come lista di DummyItems; • ITEM_MAP = è il componente HashMap che permette di collegare gli ITEMS e renderli selezionabili (?!?); 4 FragmentProva 2 • NotiziaListActivity.java = activity principale che parte all’avvio dell’applicazione e che ‘’carica’’ i dati contenuti nella DummyContent.java e che alla selezione fa partire la NotiziaDetailActivity; • NotiziaDetailActivity.java = activity specifica che visualizza i dati ‘’caricandoli’’ da DummyContent.java e che li mostra caricando un fragment NotiziaDetailFragment.java; • Sono da approfondire … 5 FragmentProva 3 Snackbar.make ( view, "Replace with your own action", Snackbar.LENGTH_LONG ) .setAction("Action", null).show(); • Messaggio in sovraimpressione sulla falsa riga di Toast; 6 FragmentProva Eserzio • Provare ad aggiungere un nuovo contenuto (ad esempio un’immagine) ai DummyItem; • Provare a modificare le impostazioni per visualizzarlo nel NotiziaDetailFragment.java • Attenti alle impostazioni dei file xml per la grafica 7 ActionBar • La barra ‘’in alto’’ che contiene i menu e i servizi di navigazione … • E’ possibile gestirne la visualizzazione e gestirne i menu; • Attenzione a: – style.xml = per impostazioni di visualizzazione; – menu e menu_main.xml = per definire il menu e le sue modalità di visualizzazione: app:showAsAction="ifRoom" app:showAsAction="never" – strings.xml = per definire le voci del menu; 8 ActionBar Esercizio • Inserire un menu di tre voci; • Alla scelta di ogni voce far partire una activity diversa; • In ogni activity inserire un EditText per leggere una stringa, che deve essere ricopiata nel TextView della activity principale; • Il ritorno all’activity principale magari farlo con un MotionEvent o con un GestureDetector (onFling) • … 9 ToolBar 1 • La barra ‘’a lato’’ o ‘’in basso’’ o dove meglio si crede; • Può essere usata in sostituzione della ActionBar; 1) Annullare la ActionBar in style.xml: @style/Theme.AppCompat.Light.NoActionBar 2) Inserire la ToolBar in action_main.xml; 3) Associare la ToolBar alla MainActivity.java: setSupportActionBar(myToolbar); 10 ToolBar 2 4) Creare e Impostare il Menu in menu_main.xml: 5) Creare la SecondActivity.java; 6) Impostare il tasto di ritorno alla MainActivity.java: ActionBar ab = getSupportActionBar(); ab.setDisplayHomeAsUpEnabled(true); 7) Settare nell’AndroidManifests.xml la Home: android:parentActivityName=".MainActivity"> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity"/> 11 ToolBar Esercizio • Inserire un menu diverso nella SecondActivity; • Alla scelta di ogni voce far partire una activity diversa; • … 12