Android 共享引用可以';韩元';不要删除数据
我正在尝试使用我的应用程序中的警报对话框删除共享首选项数据,因此: 设置共享优先级:Android 共享引用可以';韩元';不要删除数据,android,sharedpreferences,Android,Sharedpreferences,我正在尝试使用我的应用程序中的警报对话框删除共享首选项数据,因此: 设置共享优先级: SharedPreferences settings = getSharedPreferences("MyPrefsFile", 0); startLat = Double.longBitsToDouble(settings.getLong("startLat", 0)); endLat = Double.longBitsToDouble(settings.getLong("en
SharedPreferences settings = getSharedPreferences("MyPrefsFile", 0);
startLat = Double.longBitsToDouble(settings.getLong("startLat", 0));
endLat = Double.longBitsToDouble(settings.getLong("endLat", 0));
删除数据方法:
public void discardLocation() {
SharedPreferences.Editor settings = getSharedPreferences("MyPrefsFile", 0).edit();
settings.clear();
settings.commit();
Toast.makeText(MainActivity.this, "Location Discarded!",
Toast.LENGTH_LONG).show();
}
您的主要活动应该声明您的prefs上下文
PreferenceManager.setDefaultValues(this, R.xml.default_values, false);
然后,您将获得一个编辑器并提交更改。它应该会起作用
存在两种类型的提交,您应该查看API
SharedPreferences.Editor ed = PreferenceManager.getDefaultSharedPreferences(mactivity).edit();
ed.putString("default_parse_user_oid", id);
ed.putString("default_parse_user_token", token);
ed.apply();
实际答案: 我明白了为什么
SharedReferences
对我不起作用
基本上,我从不全局设置我的SharedReferences
变量
解决方法:
我还不明白为什么不能使用SharedReferences
然而,有一个解决办法。如果要存储任何类型的数字(int、double),只需将它们设置回deletecordinations()
方法中的原始值即可
例如,在我的代码中,我使用坐标。坐标默认设置为0:
double startLat = 0;
double endLat = 0;
因此,在坐标被设置为另一个值之后。(坐标永远不会为0)只需在deletecordinations()
中将它们设置回0即可
你得到你的“位置丢弃”吐司了吗?设置首选项的代码和确定未清除首选项的代码在哪里?是,当我点击“是”时显示。我在onCreate中设置了首选项,然后将数据保存在onStop中。勾选编辑
startLat = 0;
endLat = 0;