sharedPreference:写点东西并保存,一切都消失了

时间:2012-11-04 16:40:44

标签: java android

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

saved += "*" + editTextFelt.getText().toString() + ". \n";

savedString。 一切正常,我甚至可以重新加载应用程序,它仍然显示在TextView,但如果我尝试写一些东西并保存那里的所有东西,现在就消失了。为什么呢?

CODE: init Method()

sp = getSharedPreferences(fileName, 0);
betaView = (TextView)findViewById(R.id.betaTextView);

我有一个按钮来发送文本,这就像:

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"));   

1 个答案:

答案 0 :(得分:1)

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

所以你需要获得前一个,然后附加新的,然后再将它保存到SharedPreferences,如下所示:

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.

现在将此附加文字设置为TextView,如下所示:

betaView.setText(saved);