Soru & Cevap

Sayfada Switch Butonun Durumunun Sayfa Değişse Bile Aynı Kalması

06.06.2014 - 08:19

Arkadşlar menu sayfası oluştrdm Yeni xml sayfası olarak ve Intent ve startActivity olarak menu  sayfasına geçş yapıyrm burada bi switch butonm var bu butona tıkladkdan sonra bi önceki sayfaya döndüğümde veya sayfa değiştrdiğim de bu switch butonun tıkladığım şekilde kalması lazm nasıl yapaiblirm

13 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-66405-1449241617.jpg
murat34can52
21.12.2015 - 02:12

Merhaba Zafer,
Öncelikle değişmemesi istiyorsan durumun yapılması gereken tek kontrol işlemidir.

benim bir MainAcvitiy.class 'ım var.

içine 

public static boolean switchDurum = false;
diye tanımladım.

birde
benim bir Ayarlar.class 'ım olsun
ayaların onCreate methodun içine bir kontrol yapalım
if(MainActivity.switchDurum == false)
switch1.setChecked(false);
else
switch1.setChecked(true);

geri geldiğimizde  değişkende durum neyse onu kaydetmek için de.
onPause method oluşturup yada onKeyEvent ile geri gelme tuşuna basıldığında yapılacaklar dersin.
yazacağın şu.
MainActivity.switchDurum = (switch1.isChecked() ? true : false);

bu durumda tekrar girdiğinde orası aktif kalır.
eğer bu uygulamayıda kapattığında falan yapıcaksan.
onu bir veritabanına kaydetmen gerek :)

picture-1815-1392143914.jpg
GOKBERK
23.07.2014 - 07:14

Depolama seçeneklerine göz atmanızı öneririm.

http://developer.android.com/guide/topics/data/data-storage.html#pref

Tavsiyem ise Shared Prefences. Uygulama içerisinde xml oluşturarak veriyi orada saklar uygulamanızı kapatmanız verinin silinmesine neden olmaz. Butona her tıklandığında boolean olarak ayarladığınız bir kısmı değiştirebilirsiniz. 

Activity yüklenirken ise 
mToggle.setChecked(mBool); yaparak (tabiki mBool değerini shared prefencesten çekeceksiniz.) nerede kalmışsa oradan devam edecek şekilde başlatabilirsiniz.

 

Kayıt için örnek

 

[code]

@Override
public void onClick(View v) 
{
    if (toggle.isChecked()) 
    {
        SharedPreferences.Editor editor = getSharedPreferences("com.example.xyz", MODE_PRIVATE).edit();
        editor.putBoolean("NameOfThingToSave", true);
        editor.commit();
    }
    else
    {
        SharedPreferences.Editor editor = getSharedPreferences("com.example.xyz", MODE_PRIVATE).edit();
        editor.putBoolean("NameOfThingToSave", false);
        editor.commit();
    }
}

[/code]

 

Yüklenme için örnek

 

[code]

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    SharedPreferences sharedPrefs = getSharedPreferences("com.example.xyle", MODE_PRIVATE);
    toggle.setChecked(sharedPrefs.getBoolean("NameOfThingToSave", true));
}

[/code]

Zafer M ŞEN
23.07.2014 - 09:52
Saolun hocam burda dedinz gibi şekilde yapmıştm.bunu yaptktan sonraki sorun şu uygulamadan çıktıkdan sonra tekrar girdiğimde yine aynı kalıyr kalmasına ama yapması gereken görevi yapmıyr.Örn: Flash on-off switch butonu buton açık çıkıp girdiğimizde buton tekrar açık kalıyr ama flash açık değil mesala
GÖKBERK YAĞCI
23.07.2014 - 11:18
Uygulamanızın flashı kapsadığını bilmiyordum. Camera.Parameters p= mCamera.getParameters(); String flashMode = p.getFlashMode(); toggle.setChecked(flash.equals(Camera.Parameters.FLASH_MODE_ON)) http://developer.android.com/reference/android/hardware/Camera.Parameters.html Dip Not : Denemedim sadece örneklere bakarak yazdım.