1

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

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

saved是一个String。一切正常,我什至可以重新加载应用程序,它仍然显示在TextView. 为什么?

代码:初始化方法()

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

1 回答 1

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);
于 2012-11-04T16:55:30.840 回答