-1

Im making a simple app, which counts the clicks of a button and saves the integer with a Shared Preferences. I tried it with the following code, but the app crashes all the time, if I try to open "Singleplayer"

public class Singleplayer extends AppCompatActivity {

private int sp1;
private int record;


@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_singleplayer);


    final Button button1 = (Button) findViewById(R.id.buttonspieler1);
    final TextView lbl1 = (TextView)findViewById(R.id.lblspieler1);
    final TextView lbl2 = (TextView)findViewById(R.id.lblrekord);

    SharedPreferences data_record = getSharedPreferences("savegame", 0);
    record = data_record.getInt("myKey1", 0);
    lbl2.setText(String.valueOf(record));

    button1.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(final View v)
        {


            if(sp1< record) {
                sp1++;
                lbl1.setText(String.valueOf(sp1));
            }
            else if(sp1>= record)
            {
                sp1++;
                record++;
                lbl1.setText(String.valueOf(sp1));
                lbl2.setText(String.valueOf(record));

            }


        }
    });


}

@Override
protected void onStop() {
    super.onStop();

    SharedPreferences data_record = getSharedPreferences("savegame", 0);
    SharedPreferences.Editor editor = data_record.edit();
    editor.putString("myKey1", String.valueOf(record));
    editor.commit();
}

}

E.Rauber
  • 13
  • 4

1 Answers1

0

you are using sharedPrefrence in your onStop() so you will face many issue here, i suggest to use it at the end of click method

 button1.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(final View v)
        {


            if(sp1< record) {
                sp1++;
                lbl1.setText(String.valueOf(sp1));
            }
            else if(sp1>= record)
            {
                sp1++;
                record++;
                lbl1.setText(String.valueOf(sp1));
                lbl2.setText(String.valueOf(record));

            }

SharedPreferences data_record = getSharedPreferences("savegame", 0);
    SharedPreferences.Editor editor = data_record.edit();
    editor.putString("myKey1", String.valueOf(record));
    editor.commit();
        }
    });

so why the app crash, because the sharedPref dosen't carry any value it's null

please check this

Community
  • 1
  • 1