java - Sharedpreferences 与切换按钮不保存
问题描述
OneSignal.setSubscription (true or false) 在此按钮的帮助下我使用 SharedPreferences 方法向应用程序添加了一个 Switch 按钮;,但问题是,即使我使用 SharedPreferences 不保存 Button 的值,也不会保存我们重新启动应用程序时的默认值。
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;
}
}
}
解决方案
所以这样?
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();
推荐阅读
- asana - 从 Asana 中的自定义字段自动导出数据
- php - 单击按钮时从主表值插入其他表
- c++ - SetFileAttributes 函数返回意外错误代码 ERROR_INVALID_PARAMETER
- python - 我如何使用 Python 访问 Json 的某个部分
- javascript - 列出组件功能
- arrays - Google电子表格:将唯一计数结果除以二
- php - PHP / BTC 处理用户 xfers
- python - Django 中 /13/download/ 的 NoReverseMatch
- php - 使用 WP_User 对象的简码
- sql - 如何编写 PLSQL 以返回 SYSDATE 加 8 个工作日?