Java SharedReference:写一些东西并保存,所有东西都会消失

Java SharedReference:写一些东西并保存,所有东西都会消失,java,android,Java,Android,我正在开发这个应用程序,其中有一个EditText字段,您可以在其中写入内容,然后将其保存并添加到列表中(TextView)。我用以下方式保存编辑文本的内容: saved += "*" + editTextFelt.getText().toString() + ". \n"; 已保存是一个字符串。 一切正常,我甚至可以重新加载应用程序,它仍然显示在文本视图中,但是如果我尝试编写一些内容并保存它,那么所有的内容现在都会消失。为什么? 代码: init方法() 我有一个发送文本的按钮,如下所示:

我正在开发这个应用程序,其中有一个
EditText
字段,您可以在其中写入内容,然后将其保存并添加到列表中(
TextView
)。我用以下方式保存编辑文本的内容:

saved += "*" + editTextFelt.getText().toString() + ". \n";
已保存
是一个
字符串
。 一切正常,我甚至可以重新加载应用程序,它仍然显示在
文本视图中,但是如果我尝试编写一些内容并保存它,那么所有的内容现在都会消失。为什么?

代码: init方法()

我有一个发送文本的按钮,如下所示:

public void onClick(View v) {
        switch(v.getId()){
        case R.id.btnSend:
            saved += "*" + editTextFelt.getText().toString() + ". \n";
            SharedPreferences.Editor editor = sp.edit();
            editor.putString("SAVED", saved);
            editor.commit();

            betaView.setText(sp.getString("SAVED", "Empty"));   

你是如何保存它的?因为当您针对变量保存文本时,它会替换上一个变量

因此,您需要获取上一个,然后附加新的,然后再次将其保存到
SharedReferences
,如下所示:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String saved = sp.getString("YourVariable", "");
saved += "*" + editTextFelt.getText().toString() + ". \n"; //appending previous
//Editor to edit
SharedPreferences.Editor editor = preferences.edit();
editor.putString("YourVariable",saved);
editor.commit(); //don't forget to commit.
betaView.setText(saved);
现在将此附加文本设置为
TextView
,如下所示:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String saved = sp.getString("YourVariable", "");
saved += "*" + editTextFelt.getText().toString() + ". \n"; //appending previous
//Editor to edit
SharedPreferences.Editor editor = preferences.edit();
editor.putString("YourVariable",saved);
editor.commit(); //don't forget to commit.
betaView.setText(saved);

你是如何保存它的?因为当您针对变量保存文本时,它会替换上一个变量

因此,您需要获取上一个,然后附加新的,然后再次将其保存到
SharedReferences
,如下所示:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String saved = sp.getString("YourVariable", "");
saved += "*" + editTextFelt.getText().toString() + ". \n"; //appending previous
//Editor to edit
SharedPreferences.Editor editor = preferences.edit();
editor.putString("YourVariable",saved);
editor.commit(); //don't forget to commit.
betaView.setText(saved);
现在将此附加文本设置为
TextView
,如下所示:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String saved = sp.getString("YourVariable", "");
saved += "*" + editTextFelt.getText().toString() + ". \n"; //appending previous
//Editor to edit
SharedPreferences.Editor editor = preferences.edit();
editor.putString("YourVariable",saved);
editor.commit(); //don't forget to commit.
betaView.setText(saved);

您需要向我们展示您是如何保存数据并将其加载到SharedReference的。我明白,我会尝试发布代码中重要的内容!我有一个init方法:sp=getSharedReferences(文件名,0);betaView=(TextView)findViewById(R.id.betaTextView);我得到了一个OnclickLisener,代码如下:case R.id.btnSend:saved+=“*”+editTextFeel.getText().toString()+”\n”;SharedReferences.Editor=sp.edit();editor.putString(“已保存”,已保存);commit();betaView.setText(sp.getString(“已保存”、“空”);顺便说一下,当我写评论时,所有的文本都被包装起来了:/你是如何初始化/设置值为
保存的
?你需要向我们展示你是如何保存数据并将其加载到SharedReference的。我明白,我会尝试发布我代码中的重要内容!我有一个init方法:sp=getSharedReferences(文件名,0);betaView=(TextView)findViewById(R.id.betaTextView);我得到了一个OnclickLisener,代码如下:case R.id.btnSend:saved+=“*”+editTextFeel.getText().toString()+”\n”;SharedReferences.Editor=sp.edit();editor.putString(“已保存”,已保存);commit();betaView.setText(sp.getString(“已保存”、“空”);顺便问一下,当我写评论时,所有的文本都被包装起来了:/你是如何初始化/设置第一次保存的
值的?哦!我添加了saved=sp.getString(“saved”,即“”);betaView.setText(已保存);在onCreate中,然后它工作了!所以非常感谢你的帮助,阿迪尔!现在我真的成功了,令人惊叹的!哦我添加了saved=sp.getString(“saved”,即“”);betaView.setText(已保存);在onCreate中,然后它工作了!所以非常感谢你的帮助,阿迪尔!现在我真的成功了,令人惊叹的!