Autore Topic: Dualpane layout  (Letto 1142 volte)

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Dualpane layout
« il: 03 Ottobre 2012, 14:14:42 CEST »
0
Ciao a tutti, ho due fragment simili a questo 



 e vorrei fare in modo di cambiare layout-view (nel fragment 2) ogni volta che clicco un item della listView (che si trova all'interno fragment 1 )... come posso fare?
« Ultima modifica: 03 Ottobre 2012, 14:27:57 CEST da Ricky` »

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:problema con fragment
« Risposta #1 il: 03 Ottobre 2012, 14:26:45 CEST »
0
Tipico caso di list->detail...come al solito la docu ufficiale viene abbondantemente in soccorso:

http://developer.android.com/guide/components/fragments.html#CommunicatingWithActivity

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:Dualpane layout
« Risposta #2 il: 03 Ottobre 2012, 14:45:13 CEST »
0
ho letto la documentazione, ma ancora non ho capito come fare

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Dualpane layout
« Risposta #3 il: 03 Ottobre 2012, 14:48:11 CEST »
+1
Non è una cosa che si spiega in due parole... confesso che qui sul forum servirebbe un tutorial fatto bene.
Comunque, ti consiglio di leggere anche qui:

Building a Dynamic UI with Fragments | Android Developers

C'è anche un esempio allegato che puoi scaricare e studiarti.

Se poi hai una domanda *in particolare* postala pure :)

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Dualpane layout
« Risposta #4 il: 03 Ottobre 2012, 14:56:02 CEST »
0
Cosa non ti è chiaro della sezione "Communicating with the Activity"? Così magari si puntualizza il problema.

Ad ogni modo, il succo è che l'Activity ospitante i Fragments fa da "ponte": il Fragment che contiene la lista comunica all'Activity ciò che è successo, e questa reagisce di conseguenza (cambia il Fragment2, lo refresha e così via, a seconda di come è gestito il flow). La chiave è far implementare all'Activity ospitante un'opportuna interfaccia che il Fragment di turno possa utilizzare per la comunicazione.

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:Dualpane layout
« Risposta #5 il: 03 Ottobre 2012, 15:59:45 CEST »
0
Ho capito quello che diceva in quella sezione... ma non ho capito come si fa a cambiare il layout del fragment2.... una cosa del tipo fragment2.setContentView(R.id.layout2)
« Ultima modifica: 03 Ottobre 2012, 16:03:22 CEST da topix93 »

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:Dualpane layout
« Risposta #6 il: 03 Ottobre 2012, 16:21:10 CEST »
0

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Dualpane layout
« Risposta #7 il: 03 Ottobre 2012, 16:30:38 CEST »
0
oppure mi conviene fare una cosa del genere http://developer.android.com/training/basics/fragments/fragment-ui.html#Replace?

Come diceva Ricky, questa è la via. E effettivamente manca sul forum un tutorial che lo tratta.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:Dualpane layout
« Risposta #8 il: 03 Ottobre 2012, 16:36:59 CEST »
0
Ho provato a fare una cosa del genere ma ancora non mi funziona... potete darmi una mano?

Codice (Java): [Seleziona]
@Override
        public void onListItemClick(ListView l, View v, int position, long id) {
                String item = (String) getListAdapter().getItem(position);
                if(item.equals("Riepilogo")){
                        if (courrentFrag != R.id.frag_riep){
                               
                                FragRiepilogo newFragment = new FragRiepilogo();
                               
                                Bundle args = new Bundle();
                                args.putInt(FragRiepilogo.ARG_POSITION, position);
                                newFragment.setArguments(args);

                                FragmentTransaction transaction = getFragmentManager().beginTransaction();

                                // Replace whatever is in the fragment_container view with this fragment,
                                // and add the transaction to the back stack so the user can navigate back
                                transaction.replace(courrentFrag, newFragment);
                                transaction.addToBackStack(null);

                                // Commit the transaction
                                transaction.commit();
                               
                                courrentFrag = R.id.frag_riep;
                        }
                } else if(item.equals("Inserimento")){
                        if (courrentFrag != R.id.frag_ins){
                                FragInserimento newFragment = new FragInserimento();

                                Bundle args = new Bundle();
                                args.putInt(FragInserimento.ARG_POSITION, position);
                                newFragment.setArguments(args);

                                FragmentTransaction transaction = getFragmentManager().beginTransaction();

                                // Replace whatever is in the fragment_container view with this fragment,
                                // and add the transaction to the back stack so the user can navigate back
                                transaction.replace(courrentFrag, newFragment);
                                transaction.addToBackStack(null);

                                // Commit the transaction
                                transaction.commit();
                                courrentFrag = R.id.frag_ins;
                        }
                } else if(item.equals("Prelievo")){
                        if (courrentFrag != R.id.frag_prel){
                                FragPrelievo newFragment = new FragPrelievo();
                                Bundle args = new Bundle();
                                args.putInt(FragPrelievo.ARG_POSITION, position);
                                newFragment.setArguments(args);

                                FragmentTransaction transaction = getFragmentManager().beginTransaction();

                                // Replace whatever is in the fragment_container view with this fragment,
                                // and add the transaction to the back stack so the user can navigate back
                                transaction.replace(courrentFrag, newFragment);
                                transaction.addToBackStack(null);

                                // Commit the transaction
                                transaction.commit();
                               
                                courrentFrag = R.id.frag_prel;
                        }
                }

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:Dualpane layout
« Risposta #9 il: 04 Ottobre 2012, 08:29:37 CEST »
0
up
« Ultima modifica: 04 Ottobre 2012, 14:20:40 CEST da topix93 »

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:Dualpane layout
« Risposta #10 il: 05 Ottobre 2012, 08:30:03 CEST »
0
up

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Dualpane layout
« Risposta #11 il: 05 Ottobre 2012, 08:53:08 CEST »
0
up

Immagino che in pochissimi abbiano esperienza di questa modalità, ed io non sono tra questi, ma se posti gli errori possiamo provare a interpretarli.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:Dualpane layout
« Risposta #12 il: 05 Ottobre 2012, 08:58:01 CEST »
0
nessun errore purtroppo

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:Dualpane layout
« Risposta #13 il: 05 Ottobre 2012, 09:42:53 CEST »
0
ho risolto seguendo un metodo diverso da quello che stavo usando io... ho preso spunto da qua: http://android-er.blogspot.it/2011/12/dynamic-change-fragment-using-java-code.html

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Dualpane layout
« Risposta #14 il: 05 Ottobre 2012, 11:41:36 CEST »
0
Provo a creare un tutorial.