2012-11-08 36 views

cevap

19

Sen bunu yapamaz:

settings.edit().putBoolean("registered", true); 
settings.edit().commit(); 

.değişiklik yapmak, editör nesneyi almak gerekir:

Editor editor = settings.edit(); 
editor.putBoolean(...); 
editor.commit(); 
+0

Çok teşekkürler kullanabilirsiniz. Bu SharedPreferences.Editor olduğunu. İşe yaradı. Ama nedenini açıklayabilir misin? Belki de yöntemleri aradığım zaman farklı "nesneler" olarak adlandırdığı için? –

+1

Evet, '.edit()' yi her aradığınızda Editör nesnesini sıfırlar, dolayısıyla bunun için '.commit() 'olarak adlandırdığınızda, içine koyduğunuz booleanı temizler. – cjk

+0

Bununla birlikte, "settings.edit(). PutBoolean (" kayıtlı ", true) .commit();' (hatırlayabildiğim kadarıyla) –

2
SharedPreferences prefs = PreferenceManager 
         .getDefaultSharedPreferences(LoginActivity.this); 
       Editor edit = prefs.edit(); 
       edit.putBoolean("registered", true); 
       edit.commit(); 

kullanımını bu

0

diğer cevaplar ayrıca doğrudur.

Ayrıca bu

settings.edit().putBoolean("registered", true).commit();

+0

Bu işe yaramıyor. Cjk'nin cevabını görün, nedenini çok iyi açıklıyor! –