2012-11-04 102 views
1

我正在從事這個應用程序,我有一個EditText字段,您可以在其中寫入內容然後將其保存並添加到列表中(TextView)。我保存EditText的內容是這樣的:需要幫助解決sharedPreference probem

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

savedString。 一切工作正常,我甚至可以重新加載應用程序,它仍然顯示在TextView,但如果我嘗試寫東西,並保存它在那裏的一切,現在消失。有誰知道爲什麼? 這是一種令人困惑,我必須得到它的工作!謝謝!!

CODE: 的init()方法

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

香港專業教育學院有一個按鈕,發送文本,這是這樣的: p

ublic 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")); 
+0

您需要向我們展示如何將數據保存並加載到SharedPreference。 –

+0

我明白,我試着發佈我的代碼中的重要內容! 我有一個初始化方法,我有: sp = getSharedPreferences(fileName,0); betaView =(TextView)findViewById(R.id.betaTextView); 而且我得到一個OnclickLisener用下面的代碼: \t \t情況R.id.btnSend: 「\ n」 個 \t \t \t保存+ = 「*」 + editTextFelt.getText()的toString()+; \t \t \t SharedPreferences.Editor editor = sp.edit(); \t \t \t editor.putString(「SAVED」,saved); \t \t \t editor.commit(); \t \t \t \t \t \t betaView.setText(sp.getString( 「SAVED」, 「空」)); –

+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); 
+0

哦!我加了\t saved = sp.getString(「SAVED」,「」); \t \t betaView.setText(saved); 在onCreate,然後它的工作!所以非常感謝Adil的幫助!現在我確實得到了它的工作! ,太棒了! –