Autore Topic: Uso Fragment- errore durante salvataggio dati  (Letto 389 volte)

Offline MisterAnt

  • Utente normale
  • ***
  • Post: 272
  • Respect: +4
    • IlSikano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4 Active,Galaxy SIII I9300, Galaxy Tab GT-P5100
  • Play Store ID:
    MisterAnt
  • Sistema operativo:
    Ubuntu 12.04/Winzoz 7/Winzoz xp
Uso Fragment- errore durante salvataggio dati
« il: 29 Agosto 2013, 15:20:54 CEST »
0
Buon pomeriggio,
Io utilizzo i fragment sulla mia attività, ma alcune volte non riesco a salvare i miei oggetti quando cambio fragment...
Qualcuno mi può aiutare?
Codice (Java): [Seleziona]
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_menu);
 
       
        container=new Fragment[15];
       
        for(int i=0;i<=15;i++){
           container[i] = new FragmentNull();
       }
   
       
        btn1 = (RelativeLayout)findViewById(R.id.btn_back);
        btn2 = (RelativeLayout)findViewById(R.id.btn_choose);
        btn3 = (RelativeLayout)findViewById(R.id.btn_layout);
        /*
        *il resto dei btn....
        */
     


        GestioneFile();
       
        // get an instance of FragmentTransaction from your Activity
        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
       
        FragmentDrink myFragment = new FragmentDrink();
        fragmentTransaction.add(R.id.myfragment_choose, myFragment);
        fragmentTransaction.commit();
       
        btn1.setOnClickListener(btnFragmentOnClickListener);
        btn2.setOnClickListener(btnFragmentOnClickListener);
        btn3.setOnClickListener(btnFragmentOnClickListener);
        btn4.setOnClickListener(btnFragmentOnClickListener);
        btn5.setOnClickListener(btnFragmentOnClickListener);
        btn6.setOnClickListener(btnFragmentOnClickListener);
        btn7.setOnClickListener(btnFragmentOnClickListener);
        btn8.setOnClickListener(btnFragmentOnClickListener);
        btn9.setOnClickListener(btnFragmentOnClickListener);
        btn10.setOnClickListener(btnFragmentOnClickListener);
        btn11.setOnClickListener(btnFragmentOnClickListener);
        btn12.setOnClickListener(btnFragmentOnClickListener);
        btn13.setOnClickListener(btnFragmentOnClickListener);
        btn14.setOnClickListener(btnFragmentOnClickListener);
        btn15.setOnClickListener(btnFragmentOnClickListener);
        //btn16.setOnClickListener(btnFragmentOnClickListener);
       
        btn2.setBackgroundResource(R.drawable.blue_radial);
       
       
        bindRemoteService();
    }
   
    RelativeLayout.OnClickListener btnFragmentOnClickListener
    = new  RelativeLayout.OnClickListener(){

                @Override
                public void onClick(View v) {
                        int control=0;
                        Fragment newFragment = null;
                        /////////////////////////////////
                       
                        if(v == btn1){//ritorno sul main
                                ChangeBackground();
                                btn1.setBackgroundResource(R.drawable.blue_radial);
                                control++;
                                Main();
                        }
                       
                        if(v == btn2){//settaggio drink
                                ChangeBackground();
                                btn2.setBackgroundResource(R.drawable.blue_radial);
                                control++;
                                newFragment = new FragmentDrink();
                                StatoBluetooth();
                               
                        }
                       
                        if(v == btn3){//settaggio layout
                                ChangeBackground();
                                btn3.setBackgroundResource(R.drawable.blue_radial);
                                control++;
                                newFragment = new FragmentLayout2();
                                StatoBluetooth();
                        }
                       
                        if(v == btn4){//set data
                                ChangeBackground();
                                btn4.setBackgroundResource(R.drawable.blue_radial);
                                control++;
                                ReadAndLoadDataSettings();
                                newFragment = container[3];
                                StatoBluetooth();
                        }
                       
                        if(v == btn5){//settings
                                ChangeBackground();
                                ReadAndLoadDataSettings();
                                btn5.setBackgroundResource(R.drawable.blue_radial);
                                control++;
                                newFragment = container[4];
                                StatoBluetooth();
                        }
                       
                       
                        if(v == btn6){//set blades
                                ChangeBackground();
                                ReadAndLoadDataSettings();
                                btn6.setBackgroundResource(R.drawable.blue_radial);
                                control++;
                                newFragment = container[5];
                                StatoBluetooth();
                        }
                       
                       
                       
                        if(v == btn7){//set steam boiler
                                ChangeBackground();
                                ReadAndLoadDataSettings();
                                btn7.setBackgroundResource(R.drawable.blue_radial);
                                control++;
                                newFragment = container[6];
                                StatoBluetooth();
                        }
                       
                       
                        if(v == btn8){//set ingred order
                                ChangeBackground();
                                btn8.setBackgroundResource(R.drawable.blue_radial);
                                control++;
                                newFragment = container[7];
                                StatoBluetooth();
                        }
                       
                       
                        if(v == btn9){//set email
                                ChangeBackground();
                                btn9.setBackgroundResource(R.drawable.blue_radial);
                                control++;
                                newFragment = container[8];
                                StatoBluetooth();
                        }
                       
                       
                       
                        if(v == btn10){//set video
                                ChangeBackground();
                                btn10.setBackgroundResource(R.drawable.blue_radial);
                                control++;
                                newFragment = container[9];
                                StatoBluetooth();
                        }
                       
                        if(v == btn11){//set psw
                                ChangeBackground();
                                btn11.setBackgroundResource(R.drawable.blue_radial);
                                control++;
                                newFragment = container[10];
                                StatoBluetooth();
                        }
                       
                       
                        if(v == btn12){//set info
                                ChangeBackground();
                                btn12.setBackgroundResource(R.drawable.blue_radial);
                                control++;
                                newFragment = container[11];
                                StatoBluetooth();
                        }
                       
                       
                       
                        if(v == btn13){
                                ChangeBackground();
                                btn13.setBackgroundResource(R.drawable.blue_radial);
                                newFragment = container[12];
                                control++;
                                ConfirmReset();
                               
                        }
                       
                        if(v == btn14){
                                ChangeBackground();
                                btn14.setBackgroundResource(R.drawable.blue_radial);
                                Intent menu = new Intent(FragmentMenu.this,MainMenu.class);
                                menu.addFlags(
                                Intent.FLAG_ACTIVITY_CLEAR_TOP |
                                Intent.FLAG_ACTIVITY_NEW_TASK);
                                startActivity(menu);
                                newFragment = container[12];
                        }
                       
                        if(v == btn15){
                                ChangeBackground();
                                btn15.setBackgroundResource(R.drawable.blue_radial);
                                control++;
                                newFragment = container[13];
                                StatoBluetooth();
                        }
                       
                        if(v!=btn1  ){
                                if(control!=0){
                                        // Create new transaction
                                        FragmentTransaction transaction = getFragmentManager().beginTransaction();
                                        // Replace whatever is in the fragment_container view with this fragment,
                                        // and add the transaction to the back stack
                                        transaction.replace(R.id.myfragment_choose, newFragment);
                                        transaction.addToBackStack(null);
                                        control=0;
                                        // Commit the transaction
                                        transaction.commit();
                                }
                        }
                }};

uso il classico oggetto che implementa serializable
Codice (Java): [Seleziona]
public void SaveDati(){
                         File nn=new File(SetDati);
                     File NoteDirectory = new File("/sdcard/Config/");
                     NoteDirectory.mkdirs();
                     File outputFile = new File(NoteDirectory, nn.getName());
                      /////////////////
                     try{
                           //use buffering
                             ObjectOutputStream oos =
                                             new ObjectOutputStream(
                                                     new BufferedOutputStream(
                                                             new FileOutputStream(SetDati)));
                             oos.writeObject(Lista);
                             oos.flush();
                             oos.close();
                           
                         } catch(IOException ex){}
                 }
Se le zampe del coniglio sono così fortunate, che fine ha fatto il coniglio?

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:Uso Fragment- errore durante salvataggio dati
« Risposta #1 il: 29 Agosto 2013, 15:43:57 CEST »
0
Puoi essere un po' più preciso sulla natura del problema? Hai crash di qualche genere?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline MisterAnt

  • Utente normale
  • ***
  • Post: 272
  • Respect: +4
    • IlSikano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4 Active,Galaxy SIII I9300, Galaxy Tab GT-P5100
  • Play Store ID:
    MisterAnt
  • Sistema operativo:
    Ubuntu 12.04/Winzoz 7/Winzoz xp
Re:Uso Fragment- errore durante salvataggio dati
« Risposta #2 il: 29 Agosto 2013, 15:48:27 CEST »
0
No,nessun crash...
Praticamente ho la mia activity che utilizzo come menù di navigazione per navigare su vari classi mie che estendono fragment,alcune volte quando sono in un fragment e vado a salvare un oggetto quest'ultimo non viene salvato...e noto che lanciando un activity e ritornando sul fragment i dati non vengo modificati (es.cambio scritta di un layout con un'acitivity a parte,poi faccio finish e ritornando sulla mia activity e fragment precedentemente selezionati la modifica non viene eseguita)
spero di essere stato chiaro...nelle activity invece con lo stesso procedimento salva correttamente...
« Ultima modifica: 29 Agosto 2013, 15:52:36 CEST da MisterAnt »
Se le zampe del coniglio sono così fortunate, che fine ha fatto il coniglio?

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:Uso Fragment- errore durante salvataggio dati
« Risposta #3 il: 29 Agosto 2013, 18:29:19 CEST »
0
Io comincerei provando a mettere qualche Log.d() nella funzione di salvataggio, per poi cercare di riprodurre il problema. Se il problema è in tale funzione (perchè per esempio non fa in tempo a finire), dovresti individuarlo.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline MisterAnt

  • Utente normale
  • ***
  • Post: 272
  • Respect: +4
    • IlSikano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4 Active,Galaxy SIII I9300, Galaxy Tab GT-P5100
  • Play Store ID:
    MisterAnt
  • Sistema operativo:
    Ubuntu 12.04/Winzoz 7/Winzoz xp
Re:Uso Fragment- errore durante salvataggio dati
« Risposta #4 il: 31 Agosto 2013, 09:22:59 CEST »
0
Si, il problema sta proprio nella velocità di salvataggio...grazie
Se le zampe del coniglio sono così fortunate, che fine ha fatto il coniglio?