2012-01-31 75 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); 

这样你就不会在你的应用中创建额外的首选项文件,你必须记住哪些值存储在哪些文件中。一定会让生活更轻松。

相关问题