SORU
10 NİSAN 2010, CUMARTESİ


Nasıl Android bir PreferenceActivity gelen SharedPreferences alabilirim?

Bir PreferenceActivity uygulamam için bazı ayarları göstermek için kullanıyorum. Benim onCreate (ve tam sınıf yöntemleri) şöyle bir xml dosyası ile ayarları şişirme duyuyorum:

public class FooActivity extends PreferenceActivity {
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        addPreferencesFromResource(R.xml.preference);
    }
}

Bu javadocPreferenceActivityPreferenceFragment belirtir

Bu tercihler, kullanıcı onlarla etkileşime girerken SharedPreferences otomatik olarak kaydedecek. Bu aktivitede tercih hiyerarşisi kullanacak SharedPreferences bir kopyasını almak için çağrı getDefaultSharedPreferences(android.içerik.Bağlam) aynı pakette bu aktivite. bir bağlam

Ama nasıl SharedPreference adını aldığım başka bir Aktivite? Sadece arayabilirim

getSharedPreferences(name, mode)

diğer aktivite ama PreferenceActivity tarafından kullanılan SharedPreference lazım. Adı nedir veya nasıl öğrenebilirim?

CEVAP
10 NİSAN 2010, CUMARTESİ


import android.preference.PreferenceManager;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
// then you use
prefs.getBoolean("keystring", true);

Güncelleme

Birçok uygulama, belirli bir uygulama veya bir etkinlik için kullanıcı tercihleri yakalamak için bir yol sağlayabilir. Bu destek, Android API basit bir dizi sağlar.

Tercihler genellikle ad değer çiftleri vardır. “” Bir uygulama içinde çeşitli faaliyetler (işlemler arasında paylaşılamaz şu anda not) arasında. Tercihler Paylaşılan olarak saklanabilir Ya da bir aktivite için belirli bir saklı olması gereken bir şey olabilir.

  1. Paylaşılan Tercihler: paylaşılan tercihler uygulamaları tüm bileşenleri faaliyetleri, hizmet vb.) tarafından kullanılabilir.

  2. Etkinlik tercihleri ele: Bu tercihler sadece belirli bir aktivite içinde kullanılabilir ve uygulamanın diğer bileşenleri tarafından kullanılamaz.

Tercihler Paylaştı:

Paylaşılan tercihler Context sınıfı getSharedPreferences yöntem yardımı ile yönetilir. Tercihler varsayılan bir dosya içinde saklanır(1)ya da bir dosya adı belirtebilirsiniz(2)tercihleri ifade etmek için kullanılır.

(1)Önerilen yöntemdirvarsayılan modu, dosya ismi belirtmeden

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);

(2) Burada dosya adını belirtin örnek olsun

public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);

MODE_PRIVATE tercihler için işletim modu. Varsayılan mod ve oluşturulan dosyayı sadece çağıran uygulama tarafından erişilebilir olacağı anlamına gelir. İki modları desteklenen diğer MODE_WORLD_READABLE MODE_WORLD_WRITEABLE. MODE_WORLD_READABLE diğer uygulama oluşturulan dosyayı okuyabilir ama onu değiştiremezsiniz. MODE_WORLD_WRITEABLE durumunda diğer uygulamalar da oluşturulan dosya için yazma izinleri var.

Tercihler örneği sonra son olarak, burada nasılsaklanan değerleri almaktercihler:

int storedPreference = preferences.getInt("storedInt", 0);

İçindeğerleri depolartercih dosyası SharedPreference.Editor nesne kullanılmalıdır. Editor SharedPreference sınıf içinde iç içe geçmiş bir arayüz.

SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();

Editör de remove() clear() gibi yöntemler dosyasından tercih değerleri silmek için destekler.

Etkinlik Tercihleri:

Paylaşılan tercihler diğer uygulama bileşenleri tarafından kullanılır. Ama eğer diğer bileşenler ile tercihlerini paylaşma ve etkinlik olmasını özel tercihleri ihtiyacınız yoksa değil etkinliği getPreferences() yöntem yardımıyla bunu yapabilirsiniz. getPreference yöntemi tercih dosya adı aktivite sınıfın adı ile getSharedPreferences() yöntemi kullanır.

Aşağıdaki tercihlerini almak için kod

SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);

Değerleri saklamak için kod da paylaşılan tercihleri durumda aynıdır.

SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();

Ayrıca veritabanında aktivite durumunu saklamak gibi diğer yöntemleri kullanabilirsiniz. Not Android de bir paket android.preference denilen içerir. Paket uygulama tercihleri UI uygulamak için sınıflar tanımlar.

Biraz daha fazla örnek Android görmek Data Storage geliştiriciler sitesinde yazı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Blue Lightning TV

    Blue Lightni

    9 EKİM 2011
  • jcortes187

    jcortes187

    24 Mart 2006
  • Matt Stokes

    Matt Stokes

    22 Ocak 2008