Autore Topic: problema Shared Preferences  (Letto 369 volte)

Offline deb9

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: +1
    • Mostra profilo
problema Shared Preferences
« il: 13 Settembre 2013, 18:12:40 CEST »
0
Ciao a tutti devo salvare una data ma non ci riesco a provato di tutto ma non iesco a fare il cast: questo è il codice java
Codice (Java): [Seleziona]
public class MainActivity extends Activity {
    // Identificatore delle preferenze dell'applicazione
    private final static String MY_PREFERENCES = "MyPref";
    // Costante relativa al nome della particolare preferenza
    private final static String TEXT_DATA_KEY = "textData";
    Calendar calendario;
    DatePicker  datePicker;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            datePicker = (DatePicker) findViewById(R.id.datePicker);
            calendario = Calendar.getInstance();
            setcalendario();
            updatePreferencesData();
    }

    private void setcalendario() {
                // TODO Auto-generated method stub
        calendario.set(Calendar.YEAR, datePicker.getYear());
                calendario.set(Calendar.MONTH, datePicker.getMonth());
                calendario.set(Calendar.DAY_OF_MONTH, datePicker.getDayOfMonth());
        }

        /**
     * Metodo di gestione del pulsante che salva le preferences
     *
     * @param view
     *            Riferimento al button premuto
     */

    public void savePreferencesData(View view) {
            // Otteniamo il riferimento alle Preferences
            SharedPreferences prefs = getSharedPreferences(MY_PREFERENCES, Context.MODE_PRIVATE);
            // Otteniamo il corrispondente Editor
            SharedPreferences.Editor editor = prefs.edit();
            // Modifichiamo il valore con quello inserito nell'EditText
   
                    // Lo salviamo nelle Preferences
                Float date1 = (float) calendario.getTimeInMillis();
                String date = Float.toString(date1);
                    editor.putString(TEXT_DATA_KEY, date);
                    editor.commit();
            updatePreferencesData();
    }

    private void updatePreferencesData(){
            // Leggiamo le Preferences
            SharedPreferences prefs = getSharedPreferences(MY_PREFERENCES, Context.MODE_PRIVATE);
            // Leggiamo l'informazione associata alla proprietà TEXT_DATA
            String textData = prefs.getString(TEXT_DATA_KEY, "No Preferences!");
            // Lo impostiamo alla TextView
            TextView outputView = (TextView) findViewById(R.id.outputData);
            outputView.setText(textData);
    }
}

Offline matttt

Re:problema Shared Preferences
« Risposta #1 il: 13 Settembre 2013, 18:42:13 CEST »
0
date1 ?
Vedo che è un timestamp (numero di millisecondi a partire dal 1 gen 1970, 00:00:00) ... puoi salvarlo direttamente così, è un formato molto comodo.
Attenzione che getTimeInMillis ritorna un long, non un float. Quindi puoi usare putLong e quando vuoi ti ricrei l'oggetto date col costruttore Date( timestamp )
Le mie apps su Google Play Store:

Offline deb9

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: +1
    • Mostra profilo
Re:problema Shared Preferences
« Risposta #2 il: 13 Settembre 2013, 18:47:21 CEST »
0
Si ho provato usando anche il long ma mi da errore nel cast :(

Offline matttt

Re:problema Shared Preferences
« Risposta #3 il: 13 Settembre 2013, 19:04:27 CEST »
0
Ti da errore così ?!
Codice (Java): [Seleziona]
editor.putLong( "key_pref", calendario.getTimeInMillis() );
Ovviamente devi cambiare un po' la logica della tua app, caricare un long dalla preferenza, gestirlo come long, etc.
Inoltre ti conviene disinstallare la tua app dall'emulatore / cellulare e reinstallarla (o in alternativa cancellare i vecchi dati, essendo ancora un campo string nelle preferenze)
Le mie apps su Google Play Store:

Offline deb9

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: +1
    • Mostra profilo
Re:problema Shared Preferences
« Risposta #4 il: 13 Settembre 2013, 19:11:38 CEST »
0
Avevo provato ma niente poi avevo disinstallato e reinstallato poi provo di nuiuovo grazie cmq :)

Offline deb9

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: +1
    • Mostra profilo
Re:problema Shared Preferences
« Risposta #5 il: 16 Settembre 2013, 09:35:34 CEST »
0
Codice (Java): [Seleziona]
    public void savePreferencesData(View view) {
            // Otteniamo il riferimento alle Preferences
            SharedPreferences prefs = getSharedPreferences(MY_PREFERENCES, Context.MODE_PRIVATE);
            // Otteniamo il corrispondente Editor
            SharedPreferences.Editor editor = prefs.edit();
            // Modifichiamo il valore con quello inserito nell'EditText
                    // Lo salviamo nelle Preferences
            editor.putLong( "key_pref", calendario.getTimeInMillis() );
                    editor.commit();
            updatePreferencesData();
    }
Ho messo cosi ma mi da java.lang.ClassCastException : java.lang.float

Post unito: 16 Settembre 2013, 10:42:02 CEST
scusate risolto ero una cavolata :-(
« Ultima modifica: 16 Settembre 2013, 10:42:02 CEST da deb9, Reason: Merged DoublePost »