Общие настройки с кнопкой переключения не сохраняются - PullRequest
0 голосов
/ 20 сентября 2018

OneSignal.setSubscription (true или false) с помощью этой кнопки я добавил кнопку «Переключение» в приложение с помощью метода SharedPreferences;, но проблема в том, что, хотя я использую SharedPreferences, не сохраняет значение кнопки, но не сохраняет значение по умолчанию при перезапуске приложения.

package com.package.name;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.CompoundButton;
import android.widget.Switch;
import android.widget.Toast;

import com.onesignal.OneSignal;


public class ButtonOneSignal extends AppCompatActivity {

    Switch btn; 
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_one_signal); //Layout tanımladım


    //switch viettel
    btn = (Switch) findViewById(R.id.switch2);
    btn.setChecked(getFromSP("sw1"));
    btn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked == true) {
                OneSignal.setSubscription(true);
                Toast.makeText(getApplicationContext(),"Active",Toast.LENGTH_LONG).show();
            } else
                OneSignal.setSubscription(false);
                Toast.makeText(getApplicationContext(),"DeActive",Toast.LENGTH_LONG).show();
        }
    });

}

private boolean getFromSP(String key) {
    SharedPreferences preferences = getApplicationContext().getSharedPreferences("com.package.name", android.content.Context.MODE_PRIVATE);
    return preferences.getBoolean(key, false);
}

private void saveInSp(String key, boolean value) {
    SharedPreferences preferences = getApplicationContext().getSharedPreferences("com.package.name", android.content.Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = preferences.edit();
    editor.putBoolean(key, value);
    editor.commit();
}


public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    switch (buttonView.getId()) {
        case R.id.switch2:
            saveInSp("sw1", isChecked);
            break;
    }
}

}

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Так вот так?

private void saveInSp(String key, boolean value) {
        SharedPreferences preferences = getApplicationContext().getSharedPreferences("com.altaylar.hdfilmizle2017", android.content.Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();
        btn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked == true) {
                    OneSignal.setSubscription(true);
                    Toast.makeText(getApplicationContext(),"Aktif",Toast.LENGTH_LONG).show();
                } else
                    OneSignal.setSubscription(false);
                Toast.makeText(getApplicationContext(),"DeAktif",Toast.LENGTH_LONG).show();
            }
        });
        editor.putBoolean(key, value);
        editor.commit();
0 голосов
/ 20 сентября 2018

добавьте saveInSp в ваш слушатель кнопки.

btn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { saveInSp("sw1", isChecked); if (isChecked == true) { OneSignal.setSubscription(true); Toast.makeText(getApplicationContext(),"Active",Toast.LENGTH_LONG).show(); } else OneSignal.setSubscription(false); Toast.makeText(getApplicationContext(),"DeActive",Toast.LENGTH_LONG).show(); } });

...