2017-07-03 69 views
0

在我的MainActivity中,我寫了一些我假設創建一個文件並在該文件中保存一個值的代碼。如何從SharedPreference文件讀取android

public static final String WHAT_I_WROTE = null; 
public void sendMessage(View view) { 
    EditText editText = (EditText) findViewById(R.id.editText); 
    String message = editText.getText().toString(); 

    //creates new SharedPreference? 
    SharedPreferences saver = getSharedPreferences("saved_text", Context.MODE_PRIVATE); 

    //writes to the preferences file called saved_text? 
    SharedPreferences.Editor writer = saver.edit(); 
    writer.putString(WHAT_I_WROTE, message); 
    writer.commit(); 
} 

在另一個活動,我希望能夠讀取信息並顯示它,但是當我嘗試這樣,它不能解析符號「保護程序」。

String text_for_display = saver.getString(WHAT_I_WROTE); 

我在這裏犯了什麼錯誤,以及如何糾正它以讀取保存的字符串?

謝謝。

+0

的[如何使用SharedPreferences在Android的存儲,讀取和編輯值]可能的複製(https://stackoverflow.com/questions/3624280/how-to- use-sharedpreferences-in-android-to-store-fetch-and-edit-values) –

+0

你爲什麼在共享首選項中使用null作爲鍵? –

+0

WHAT_I_WROTE在這裏爲空。應改爲有效的字符串。 –

回答

0

在另一項活動中,您必須再次啓用共享偏好。

SharedPreferences saver = getSharedPreferences("saved_text", Context.MODE_PRIVATE); 
    String text_for_display = saver.getString(WHAT_I_WROTE),"any_default_value"; 

WHAT_WROTE = 「anyText」

+0

WHAT_I_WROTE在這裏爲空。應改爲有效的字符串。 –

0

一下添加到其他活動,您有:

SharedPreferences saver = getSharedPreferences("saved_text", Context.MODE_PRIVATE); 

然後讀取它像這樣

String myValue = saver.getString("saved_text", "default_value"); 
0

設定值的偏好是喜歡,

SharedPreferences.Editor editor = getSharedPreferences("saved_text", MODE_PRIVATE).edit(); 
editor.putString("WHAT_I_WROTE", message); 
editor.commit(); 

檢索的數據等,

SharedPreferences prefs = getSharedPreferences("saved_text", MODE_PRIVATE); 
String text_for_display = prefs.getString("WHAT_I_WROTE", null); 
+0

它會令人困惑的關鍵和文件名是相同的? –

+0

什麼?我沒有得到你 –