2011-05-05 12 views
7

2 etkinliğe, tercihe ve ana etkinliğe sahip bir uygulamanız var, uygulamanın ilk kez çalıştırıldığını göstermek için tercih ekranına ihtiyacım var, böylece kullanıcı bazı yapılandırmalar yapabilir. Bu konuyla ilgili cevapları kontrol ettim ve çok net görünmüyorlar ama bir araya getirdiğim paylaşım dosyası boş olduğunu kontrol etmek zorundayım.Tercih ekranı ilk kez uygulama gösteriliyor ve ilgili sorular

Birisi bunu düzeltmek için bir kod verebilir misiniz ve hangi etkinliği koyayım? Ayrıca hala geliştirme aşamasındayım, bu yüzden tercihlerimi zaten hazırladım. Bunu nasıl geri alabilirim? Advance

cevap

2

içinde true değeriyle aynı boole tercihini kaydetmek başlattığınız zaman "kayıtlı verileri silme" seçeneği. Bu, uygulamayı başlattığınız gibi başladığınız gibi olacaktır. Alternatif olarak, ayarlara girebilirsiniz -> Uygulamalar -> Siz app -> Verileri silin.

Kodlama çözümünüzle ilgili olarak şu anda kullanışlı bir şeyim yok, ancak yapmanız gereken, ana etkinliğinizi başlatmanız, paylaşılan önkoşul dosyasının boş olup olmadığını kontrol etmek için bir prosedür/işlev çalıştırmaktır. tercih etkinliğini başlatır, aksi halde ana etkinliğinizi çalıştırın. Alternatif olarak, dosyanın boş olacağını kontrol etmek yerine, kullanıcı girdisi (örneğin UserID) aradığınız bir değerin boş olup olmadığını görebilirsiniz. Bu değer boş değilse, uygulamanın devam edeceği anlamına gelir.

+0

Bu seçimi "kayıtlı verileri sil" olarak nasıl bulabilirim? – ycomp

+0

Cevabımla, bahsettiğim uygulama ayarlarında veya Android SDK/AVD Yöneticisinden emülatör içinden yapabileceğinizi beyan ederim. Cihazı başlattığınızda "Kullanıcı Verilerini Sil" – Sorean

+0

için bir seçenek var. Emülatörün içinde aramayı düşünerek kafam karışmıştı ... ("silinmiş veriyi sil"), şimdi aramayı biliyorum AVD'de ... sadece sorun şu ki, onu orada bulamıyorum ... – ycomp

14

1) içinde

teşekkürler Ana faaliyet yanlış olarak ayarlanmış varsayılan bir boolean tercihi kontrol başlar. Bu yanlışsa, tercih etkinliğinizi başlatın, eğer doğruysa, bunu doğru olarak kaydettiğinizi bilirsiniz! Tercihlerinizi etkinlikte

SharedPreferences prefs = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE); 
boolean haveWeShownPreferences = prefs.getBoolean("HaveShownPrefs", false); 

if (!haveWeShownPreferences) { 
    // launch the preferences activity 
} else { 
    // we have already shown the preferences activity before 
} 

2) Ben size sahip emülatör başlattığınızda, bir emülatör çalıştırıyorsanız farz onCreate

SharedPreferences prefs = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE); 
SharedPreferences.Editor ed = prefs.edit(); 
ed.putBoolean("HaveShownPrefs", true); 
ed.commit(); 
+0

Teşekkürler, şu anda test ediyorum, ancak MODE_PRIVATE değerinde bir hata alıyorum. Bu ne için? – Amanni

+0

Şüphem gidermek için 'Context.MODE_PRIVATE' –

+0

+1 olsaydı üzgünüm ... Teşekkürler. Bu kod bana yardımcı oldu. –

1

benim ana aktivitede bu kod biraz bu dizildi ettik

if (prefs.getString("edittextpref", null) == null) 
    { 
     startActivity(new Intent(this, Preferences.class)); 
     return; 
    } 

} 

senin değerlerden biri boşsa ancak başka onCreate veya alt kısmında bu koymak gerekiyorsa sadece denetler Ana sayfaya geri dönecek, boş olacak.

0

Böyle bir şey yapıyorum. Ve benim için çalışmaları.

String path = "//data//data//"+this.getPackageName()+"//shared_prefs//feedbackpref.xml"; 
boolean exists = (new File(path)).exists(); 
if (exists) { 
    introWindowNavigate=false;         
} 
İlgili konular