2012-01-31 68 views
1

我試圖在一個活動中保存日期,然後將該日期放入另一個活動的textView中。我不確定如何讓這兩個活動相互溝通。 在名爲report.java的文件中,我有此方法獲取日期並將其保存在sharedPrefernces中。在兩個活動之間使用sharedPreferences時遇到問題

private void updateLabel() { 
    date.setText(fmtDate.format(dateAndTime.getTime())); 
    SharedPreferences preferences = getPreferences(MODE_PRIVATE); 
    SharedPreferences.Editor editor = preferences.edit(); 
    editor.putString("date", date.getText().toString()); // value to store 
    editor.commit(); 
} 

我試圖找出如何讓我的文件名爲檢查使用它來填充一個TextView 我想我遇到的問題是報告文件得到正確的名稱。

public static final String PREF_FILE_NAME = "report"; 
    SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE); 

然後我有()

@Override 
public void onResume() { 
    super.onResume(); 
    SharedPreferences preferences = getPreferences(MODE_PRIVATE); 
    String strDate=preferences.getString("date", date.getText().toString()); 

    date.setText(strDate); 

} 

回答

2

要保存的價值,兩個不同的偏好文件稱爲的onResume方法的代碼。

SharedPreferences preferences = getPreferences(MODE_PRIVATE); 

SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE); 

只能使用一個。

+0

謝謝,一旦我切換到getSharedPreferences工作 – Aaron 2012-01-31 20:12:18

1

爲什麼不使用默認的首選項文件,通過您的應用程序的所有類/活動的訪問?

SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences(yourContext); 
preferences.edit().putString(YOURKEY, yourStrValue); 

這樣你就不會在你的應用中創建額外的首選項文件,你必須記住哪些值存儲在哪些文件中。一定會讓生活更輕鬆。

相關問題