Autore Topic: Problema SharedPreferences  (Letto 396 volte)

Offline Pognio

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
Problema SharedPreferences
« il: 07 Novembre 2014, 01:40:59 CET »
0
in poche parole ho 2 activity nella prima prendo attraverso un editText  prendo un nome che lo passo nella seconda attraverso un intent poi la prendo e la salvo in maniera persistente, allora al primo avvio ok funziona nel secondo avvio(in cui non faccio + apparire la prima activity) non mi prende il nome salvato in modo persistente.
ecco il codice

qst è l activity in cui prendo il nome una volta preso non viene + richiamata

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
      SharedPreferences.Editor editor = pref.edit();
      n = pref.getInt("numClick", 0);
      editor.commit();
      
      
      if( n == 0)
      {
         btn.setOnClickListener(new OnClickListener()
         {
            
            @Override
            public void onClick(View v)
            {
               if(!nameText.getText().toString().equals(""))
               {
                  //name = nameText.getText().toString();
                  
                  SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
                  SharedPreferences.Editor editor = pref.edit();
                  editor.putInt("numClick", 1).apply();
                  editor.putString("nameUser", nameText.getText().toString()).apply();
                  editor.commit();
                  
                  Intent mainIntent = new Intent(Name.this, TukuTukuMainActivity.class);
                  mainIntent.putExtra("nameUser", pref.getString("nameUser", "nameUserNameClassNotFoud"));
                  mainIntent.putExtra("numClick", pref.getInt("numClick", 0));
                  startActivity(mainIntent);
               }
               else
               {
                  Toast.makeText(getApplicationContext(), "SELEZIONA IL TUO NOME!!", Toast.LENGTH_LONG).show();
               }
            }
         });
      }
      else
      {
         
         Intent mainIntent = new Intent(Name.this, TukuTukuMainActivity.class);
         mainIntent.putExtra("numClick", pref.getInt("numClick", 1));
         startActivity(mainIntent);
      }         
   }
   

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:Problema SharedPreferences
« Risposta #1 il: 07 Novembre 2014, 07:54:24 CET »
0
Prima cosa, quando alleghi codice, usa il tastino per formattarlo come vedi in tutti gli altri messaggi del forum. Aiuta la leggibilità.

Quanto al tuo problema, se sicuro di rileggere le SharedPreferences al secondo avvio per rileggere il nome salvato? (ricorda che il sistema non lo fa da solo, devi farlo tu)
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline arlabs

  • Utente normale
  • ***
  • Post: 434
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:Problema SharedPreferences
« Risposta #2 il: 07 Novembre 2014, 10:16:14 CET »
0
Non l'ho mai usato ma getDefaultSharedPreferences dovrebbe tornarti le "preferenze" di default (utili per resettare la configurazione), non quello che avevi salvato la volta precedente.

Per quello puoi usare Activity.getPreferences( int mode ), per le configurazioni dei una specifica activity oppure Context.getSharedPreferences( String name, int mode ) per quelle più generali della App.

Ciao.

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Problema SharedPreferences
« Risposta #3 il: 07 Novembre 2014, 10:53:09 CET »
0
ma scusa, ma nell'else tu fai:
Codice (Java): [Seleziona]
else
      {
         
         Intent mainIntent = new Intent(Name.this, TukuTukuMainActivity.class);
         mainIntent.putExtra("numClick", pref.getInt("numClick", 1));
         startActivity(mainIntent);
      }        

il nome non lo prende perchè tu non lo prendi!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia