Android 我可以用一个按钮在SharedReferences中保存数据,用另一个按钮检索数据吗?

Android 我可以用一个按钮在SharedReferences中保存数据,用另一个按钮检索数据吗?,android,button,save,sharedpreferences,Android,Button,Save,Sharedpreferences,假设我有一个文本视图,希望用户查看,然后点击保存按钮。然后点击显示按钮,将文本输入到编辑文本字段中 这是我尝试的,但它不起作用 要从文本视图保存信息 case R.id.save: SharedPreferences firsttunesettings = getSharedPreferences("tune1", 0); SharedPreferences.Editor editor = firsttunesettings.edit();

假设我有一个文本视图,希望用户查看,然后点击保存按钮。然后点击显示按钮,将文本输入到编辑文本字段中

这是我尝试的,但它不起作用

要从文本视图保存信息

 case R.id.save:


 SharedPreferences firsttunesettings = getSharedPreferences("tune1", 0);
            SharedPreferences.Editor editor = firsttunesettings.edit();
            editor.putString("rh1", rh1.getText().toString());
            editor.commit();
然后在编辑文本中显示数据

 case R.id.display:
SharedPreferences firsttunesettings = getSharedPreferences("tune1", 0);

            rh1.setText(firsttunesettings.getString("rh1", ""));
代码没有抛出任何错误,只是似乎什么都没有做。感谢您的帮助。谢谢。

您需要这个:

SharedPreferences firsttunesettings = getApplicationContext().getSharedPreferences("tune1", 0);

and

SharedPreferences firsttunesettings = getApplicationContext().getSharedPreferences("tune1", 0);

            rh1.setText(firsttunesettings.getString("rh1", ""));
SharedReferences需要应用程序的上下文

代码的其余部分在我看来很好

编辑: 尝试将要保存的值首先放置在临时变量上,如下所示:

private static final String RH1 = "RH1";
editor.putString(RH1, rh1.getText().toString());
String temp=firsttunesettings.getString(“rh1”和“”)然后:

rh1.setText(temp);
我没有什么想法了,因为你发布的代码应该可以正常工作

编辑#2:

我还声明了我在共享首选项上使用的变量,如下所示:

private static final String RH1 = "RH1";
editor.putString(RH1, rh1.getText().toString());
然后像这样使用它:

private static final String RH1 = "RH1";
editor.putString(RH1, rh1.getText().toString());


这应该可以解决问题。

谢谢您的快速回复!这感觉像是一个简单的问题,但改变那里的代码似乎不会使它有任何不同。如果EditText和Textview是不同的活动,会有什么区别吗?看起来Save按钮确实有作用,但这只是基于点击Save后应用信息区域中的“数据”从48kb增加到64kb。我已经编辑了答案,那么,在设置值和正确设置它们时,您是否将上下文放在了首选项的两个部分上呢;如何声明变量“rh1”?谢谢。是的,我将在一个新的答案中重新发布我的新代码…等等,在OP中编辑