2011-07-07 11 views
15

SharedPreferencesDate nesnesini saklamak mümkün müdür?Bir Date nesnesini SharedPreferences'da nasıl depolarım?

Aslında kodumda String değişken, boolean ve Date var. İşte Date dışındaki tüm nesneleri saklamak için işlevim. Peki bu nasıl yapılabilir, lütfen bana teklif edin?

private void SavePreferences() { 

    String key="1"; 
    String value="hello"; 

    int x=5; 

    Date currentDate=new Date(); 

    SharedPreferences sharedPreferences = getPreferences(MODE_APPEND); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putString(key, value); 

    editor.putInt("2",5); 

    editor.commit(); 
} 

Benim soru nasıl SharedPreferences kullanılarak Date saklamaktır?

cevap

26
editor.putLong("THE_DATE", currentDate.getTime()); 

gibi sharedpreferences kullanarak tarih değeri saklayabilir Ve böyle tercihlerinden bir Date okuyabilir: String biçimlendirilmiş, örneğin olarak

long millis = sharedPreferences.getLong("THE_DATE", 0L); 
Date theDate = new Date(millis); 
+0

koyabilirsiniz .. Bir reset butonum var. Reset butonuna bastığımda tüm bu saklanan verileri silebilirim ... shredPreferences kullanarak saklıyorum. – AndroidDev

+4

'editor.clear(). Commit();' –

+0

Basit, harika yanıt. –

1

bu şekilde

editor.putLong("date",currentDate.getTime()); 
1

koyun Date

//for putting 
Date myDate; 
final String FORMAT="yyyy-MM-dd"; 
String prefData=SimpleDateFormat(FORMAT).format(myDate); 
editor.putString("Date", prefDate); 

//for reading 
prefDate=settings.getString("Date", ""); 
Date date=new SimpleDateFormat(FORMAT).parse(prefDate); 

Yoksa gibi uzun Geçen Mili

+0

tamam iyi ama saklamak için çalıştığım ilk tarihini overide ilk tarihini overide olacak .. bu nasıl olabilir ki ... tarih eklediğiniz her seferinde bir önceki tarihi overidding olmadan yeni tarih depolar. – AndroidDev

+0

İkinci verileri farklı anahtarla saklayın; örneğin, putString ("date1", myDate1) ve putString ("date2", myDate2); – barmaley

3

Set Tarih Saat tekrar uygulamayı açmak data..and saklanan bir kez

SharedPreferences sharedPreferences = getPreferences(MODE_APPEND); 
SharedPreferences.Editor editor = sharedPreferences.edit(); 
Date dt = getSomeDate(); 
editor.putLong(dateTimeKey, dt.getTime()); 

alın Tarih Saat

long myDate = sharedPreferences.getLong(dateTimeKey, new Date().getTime()); 
+0

'long' adlı bir değişkeniniz olamaz, bu bir anahtar kelimedir. –

+0

oops üzgünüm, bunu MyDate'e değiştirdim, öneriniz için teşekkürler. Varsayılan değerin şimdi ayarlanması için – Xorsat

+0

+1. – rob5408

İlgili konular