Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
Java 如果在ListPreference上单击“取消”,如何不保存到SharedReferences_Java_Android - Fatal编程技术网

Java 如果在ListPreference上单击“取消”,如何不保存到SharedReferences

Java 如果在ListPreference上单击“取消”,如何不保存到SharedReferences,java,android,Java,Android,我需要这样做,如果在ListPreference打开时按下cancel或back,则该值不会保存在SharedReferences中,并且不会对应用程序产生任何影响。我已经在我的应用程序的一切工作,并一直在寻找某种类型的解决方案,但无法找到它。 谢谢 编辑: 是否有办法在不选择任何值的情况下启动列表首选项?您可以在应用程序中显式处理取消和反按事件,并相应地执行操作 后退按钮可按以下方式操作: @Override public boolean onKeyDown(int keyCode, KeyE

我需要这样做,如果在ListPreference打开时按下cancel或back,则该值不会保存在SharedReferences中,并且不会对应用程序产生任何影响。我已经在我的应用程序的一切工作,并一直在寻找某种类型的解决方案,但无法找到它。 谢谢 编辑:
是否有办法在不选择任何值的情况下启动列表首选项?

您可以在应用程序中显式处理取消和反按事件,并相应地执行操作

后退按钮可按以下方式操作:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // your code
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

好吧,我在玩,想明白了。我这样做的方式是在res/values/string.xml中创建一个字符串,并给它自己的id(@+id/none)。然后在ListPreference信息的res/xml/preferences.xml中,我添加了android:defaultValue=“id/none”。现在,当我打开首选项列表时,没有选择任何项作为默认项。

我使用的是wayUse Sushil回答中的首选项片段。当您启动ListPreference时,获取所有的起始值,将其放入一个“普通的旧java对象”中。当用户按cancel或back时,您将使用在onCreate()中创建的Java对象加载SharedReference。我如何使用它来影响正在/未保存到SharedReferences的内容?SharedReferences默认情况下不保存内容。你一定是在什么地方写的代码。你能发布一些代码来更清晰吗?嗯,也许问这个问题的一个更好的方法是,有没有一种方法可以让列表首选项在没有选择任何值的情况下打开?明白了!!!这页上的答案救了我!!![@SketchyTurtle..很高兴知道。快乐编码:)好吧,这只在我第一次运行它时才起作用…不确定这是怎么发生的,所以我只需要弄清楚如何在每次启动时清除优先级,我有整个“SharedPreferences SharedPreferences=getSharedPreferences”(“PREF\u LIST”,MODE\u PRIVATE);SharedPreferences.edit().clear().commit();“这在onCreate中,但它不起作用,我正要开始拔头发了,哈哈