user3455532
user3455532

Reputation:

SharedPreferences not working (android.app.SharedPreferencesImpl@4103cd78"

I'm trying to pass a score integer between MathActivity and ScoreActivity. In ScoreActivity where the score is to be displayed, it says Score: android.app.SharedPrefencesImpl@4103cd78. I'm guessing that my SharedPreferences isn't correctly setup?

MathActivity

public class MathActivity extends Activity {

public static final String SAVED_DATA = "savedData";

private int SCORE = 0;


@Override
protected void onCreate (Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_math);

    SharedPreferences preferences = getSharedPreferences(SAVED_DATA,MODE_PRIVATE); 
    SharedPreferences.Editor editor = preferences.edit();
    editor.putInt("SCORE", SCORE);
    editor.commit();

ScoreActivity

public class ScoreActivity extends Activity {

public static final String SAVED_DATA = "savedData";

private int SCORE = 0; 

@Override
protected void onCreate (Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_score);

    SharedPreferences preferences = getSharedPreferences(SAVED_DATA,MODE_PRIVATE);
    SCORE = preferences.getInt("SCORE", SCORE);


    TextView tvScore = (TextView)findViewById(R.id.tvscore);
    tvScore.setText("Score: " + preferences);

Upvotes: 0

Views: 384

Answers (2)

RvdK
RvdK

Reputation: 19790

Your score is retrieved from perferences and stored in SCORE.

See: SCORE = preferences.getInt("SCORE", SCORE)

Change:

vScore.setText("Score: " + preferences);

to

vScore.setText("Score: " + Integer.toString(SCORE));

(Also don't use ALL CAPS for variable names, those are usily used for contants)

Upvotes: 1

Shashank Srivastava
Shashank Srivastava

Reputation: 446

you should change

tvScore.setText("Score: " + preferences);

to

tvScore.setText("Score: " + SCORE );

Upvotes: 1

Related Questions