Soru & Cevap

Switch son konumunu kaydetme

02.10.2015 - 11:05

Merhaba, Ben 2 adet switch'in son konumlarını kaydetmek istiyorum. Yani uygulamada switch ON konumuna alındı sonrasında uygulamayı kapatıp tekrar açtığımda da ON konumunda olmasını OFF konumuna aldığımda uygulamayı tekrar kapatıp açtığımda da OFF konumunda olmasını istiyorum. Bunu sharedpreferences kullanarak nasıl yapabilirim. İlginize teşekkür ederim, Saygilarimla.

25 Görüntülenme

3 Cevap

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

picture-7307-1432542084.jpg
rooest
02.10.2015 - 02:43

Kodu  alıp denediğimde çok ufak bir kaç değişiklikle  çalıştığını farkettim.   

1-  onCreate  içerisinde  setChecked(a)   setChecked(b)  içerisinde ki boolean değerler (a ve b) atanmamıştı, Bunları aşşağıdaki şekilde düzenledim.   

 a = preferences.getBoolean("Buton_Durumu_1", Sw1.isChecked());
 b = preferences.getBoolean("Buton_Durumu_2", Sw2.isChecked());

 Sw1.setChecked(a);
 Sw2.setChecked(b);

2 - onPause içerisinde ise Switch kontrollerinde getSplitTrack()  yerine isChecked kullandım.

 editor.putBoolean("Buton_Durumu_1", Sw1.isChecked());
 editor.putBoolean("Buton_Durumu_2", Sw2.isChecked());

 editor.commit();
 Toast.makeText(this, "Data Saved", Toast.LENGTH_LONG).show();
 super.onPause();

 

Sylar
02.10.2015 - 03:37
Ömer bey, yardımınız için teşekkür ederim. Dikkatsizlik acemilik hepsi birleşince 1,5 günüm gitti. Denedim çalıştı. Saygılarımla.
Profile picture for user Wiva
Wiva
02.10.2015 - 02:13

Merhab Ömer Bey,

Öncelikle cevabınız için teşekkür ederim, Switch'den konum bilgisini nasıl alacağım bulamadım. java kodunu vereyim bakarsanız sevinirim. Android konusunda yeniyim ilk denemem bu. 

Saygılarımla.

JAVA KOD;

package com.mursavasyandex.gsm_kontrol;


import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.widget.CompoundButton;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity
{

    Switch Sw1,Sw2;
    TextView tv;
    SharedPreferences preferences;
    boolean a,b;

 

    @Override
    protected void onPause() {

        SharedPreferences.Editor editor=preferences.edit();

        editor.putBoolean("Buton_Durumu_1",Sw1.getSplitTrack());
        editor.putBoolean("Buton_Durumu_2", Sw2.getSplitTrack());
                editor.commit();

        Toast.makeText(this,"Data Saved",Toast.LENGTH_LONG).show();
        super.onPause();
    }

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Sw1 =   (Switch)findViewById(R.id.RL1);
        Sw2 =   (Switch)findViewById(R.id.RL2);
        tv  =   (TextView)findViewById(R.id.textView);

        preferences= PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

       preferences.getBoolean("Buton_Durumu_1", Sw1.isChecked());
          preferences.getBoolean("Buton_Durumu_2",Sw2.isChecked());
        Sw1.setChecked(a);
        Sw2.setChecked(b);


        Sw1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                if (isChecked) {
                    SmsManager manager = SmsManager.getDefault();
                    manager.sendTextMessage("+90555555555”, null, "_1AC", null, null);
                    tv.setText("1 Ac sinyali Gönderildi!!!");


                } else {
                    SmsManager manager = SmsManager.getDefault();
                    manager.sendTextMessage("+905331373878", null, "_1KP", null, null);
                    tv.setText("1 Kapat sinyali Gönderildi!!!");
                }
            }
        });

        Sw2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
        {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
            {
                if (isChecked)
                {
                    SmsManager manager = SmsManager.getDefault();
                    manager.sendTextMessage("+90555555555",null,"_2AC",null,null);
                    tv.setText("2 Ac sinyali Gönderildi!!!");
                }
                else
                {
                    SmsManager manager = SmsManager.getDefault();
                    manager.sendTextMessage("555555555",null,"_2KP",null,null);
                    tv.setText("2 Kapat sinyali Gönderildi!!!");
                }
            }
        });
    }

}

 

picture-7307-1432542084.jpg
rooest
02.10.2015 - 11:45

Bunu yapmak için shared preferences ya da veritabanı  kullanabilirsin.  Basitliği açısından Shared preferences kullanman daha mantıklı.  Konuyu araştırman için fazlasıyla  yerli/ yabancı  kaynak mevcut internette. Eğer yapamaz veya hata alırsan  buraya yazabilirsin.