2010-09-02 12 views

cevap

32

Bir SharedPreferences.Editor nesne varsa ve clear() ararsanız, bu istediğini almaz? Tüm tercihleri ​​kaldıracak ve sharedPref.getAll() numaralı telefonu arayarak size 0 büyüklüğünde bir harita vermeliyim [bunu sadece test ettim].

, belirli bir tercihi kaldırmak pref tercihi adıdır editor.remove(pref), çağırın.

Not: Düzenleyicinizde commit() veya apply() yöntemini çağırarak değişikliklerinizi yapmayı unutmayın. apply(), senkronize olmadığından daha hızlıdır. commit() eşzamanlıdır, ancak işlemin başarılı olup olmadığını belirten bir boole döndürür.

+1

Eh, dokümantasyon diyor:.. " Mark tercihlerinden tüm değerleri kaldırmak için editörü kez denir taahhüt, geriye kalan tek tercihleri ​​bu editör tanımladığınız herhangi olduğunu olacaktır Not geri programına girerken Tercihler, önce, bu editöre koyma yöntemlerinden önce veya sonra temizlenmiş olup olmadığına bakılmaksızın, ilk önce yapılır. " Değerlerin kaldırılması gibi görünüyor ve hem tercihleri ​​hem de değerlerini kaldırmak istiyorum. Ayrıca, sadece bir tercihi ve bir dosyadaki değerini kaldırmak istiyorsam ne yapmalıyım? – Orca

+2

, anahtarlar dahil, her şeyi temizler. Bu, bir editör nesnesinde bir açıklık gerçekleştirir ve commit() 'i çağırmadan önce bazı değerler eklerseniz, yeni eklediğiniz değerlerin açıktan etkilenmeyeceğini söyler. Daha önce orada olan her şey temizlenmiş olacak. – QRohlf

+0

Editör sınıfında bir 'remove (String pref)' yöntemi de vardır, böylece tek bir tercihi onunla kaldırabilirsiniz. – antonyt

1

uygulamanızın özel depolama sharedpreferences dosyayı silmeye deleteFile deneyebilirsiniz. yapmalı .edit().clear().commit() arayarak

Dosyayı yeni içeriğini ancak silmek istiyorsanız

. .edit().remove("key").commit() çalışmalıdır çağıran

sadece bir tercihini silmek istiyorsanız

.

+0

Tamam, ama ya bir tercihi (ve değerini) dosyadan kaldırmak istediysem? – Orca

+1

Bunu nasıl yapacağınız için düzenlemelere bakın. – QRohlf

+0

Çok teşekkür ederim! – Orca