Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 共享引用可以';韩元';不要删除数据_Android_Sharedpreferences - Fatal编程技术网

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;