Aaron
Aaron

Reputation: 4480

Trouble using sharedPreferences between two activities

I am trying to save a date in one activity and then have that date put in a textView in another activity. I am not sure about how to get the two activities to communicate with each other. In file called report.java I have this method that gets the date and save it in sharedPrefernces.

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();
}

I am trying to figure out how to get my file called inspection use this to populate a textView The problem I think I am having is with getting the correct name for the report file.

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

then I have this code on a method called onResume()

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

    date.setText(strDate);

}

Upvotes: 1

Views: 2326

Answers (2)

Yaojin
Yaojin

Reputation: 351

Why not use the default preference file that is accessible by all classes/activities of your app?

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

This way you are not creating extra preference files in your app that you have to remember which values are stored in which files. Definately makes life easier.

Upvotes: 1

HandlerExploit
HandlerExploit

Reputation: 8251

You are saving the value to two seperate preference files.

SharedPreferences preferences = getPreferences(MODE_PRIVATE);

SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);

Use only one.

Upvotes: 2

Related Questions