I’m still on the same app and i am new to programming.
So, the EditText input won’t restore… I wanted to make the app save the Input of the EditText, and when the user starts the app again the EditText input will be restored…
I think I programmed something wrong with the Sharedpreferences, everytime when I click on the button the EditText will be deleted and doesn’t save the input or restore…
What did I wrong?
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bCalculate = (Button) findViewById(R.id.bCalculate);
display = (TextView) findViewById(R.id.TvDisplay);
AdView ad = (AdView) findViewById(R.id.ad);
ad.loadAd(new AdRequest());
bCalculate.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(getCurrentFocus()
.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
int error = 0;
int anzahlGraden = 0;
double d1 = 0.0, d2 = 0.0, d3 = 0.0, d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0;
EditText Grade1r = (EditText) findViewById(R.id.Grade1r);
String Grade1 = Grade1r.getText().toString();
EditText Grade2r = (EditText) findViewById(R.id.Grade2r);
String Grade2 = Grade2r.getText().toString();
EditText Grade3r = (EditText) findViewById(R.id.Grade3r);
String Grade3 = Grade3r.getText().toString();
EditText Grade4r = (EditText) findViewById(R.id.Grade4r);
String Grade4 = Grade4r.getText().toString();
EditText Grade5r = (EditText) findViewById(R.id.Grade5r);
String Grade5 = Grade5r.getText().toString();
EditText Grade6r = (EditText) findViewById(R.id.Grade6r);
String Grade6 = Grade6r.getText().toString();
EditText Grade7r = (EditText) findViewById(R.id.Grade7r);
String Grade7 = Grade7r.getText().toString();
EditText Grade8r = (EditText) findViewById(R.id.Grade8r);
String Grade8 = Grade8r.getText().toString();
EditText Grade9r = (EditText) findViewById(R.id.Grade9r);
String Grade9 = Grade9r.getText().toString();
EditText Grade10r = (EditText) findViewById(R.id.Grade10r);
String Grade10 = Grade10r.getText().toString();
if (Grade1.equals("")) {
error++;
} else {
d1 = Double.parseDouble(Grade1);
anzahlGraden++;
}
if (Grade2.equals("")) {
error++;
} else {
d2 = Double.parseDouble(Grade2);
anzahlGraden++;
}
if (Grade3.equals("")) {
error++;
} else {
d3 = Double.parseDouble(Grade3);
anzahlGraden++;
}
if (Grade4.equals("")) {
error++;
} else {
d4 = Double.parseDouble(Grade4);
anzahlGraden++;
}
if (Grade5.equals("")) {
error++;
} else {
d5 = Double.parseDouble(Grade5);
anzahlGraden++;
}
if (Grade6.equals("")) {
error++;
} else {
d6 = Double.parseDouble(Grade6);
anzahlGraden++;
}
if (Grade7.equals("")) {
error++;
} else {
d7 = Double.parseDouble(Grade7);
anzahlGraden++;
}
if (Grade8.equals("")) {
error++;
} else {
d8 = Double.parseDouble(Grade8);
anzahlGraden++;
}
if (Grade9.equals("")) {
error++;
} else {
d9 = Double.parseDouble(Grade9);
anzahlGraden++;
}
if (Grade10.equals("")) {
error++;
} else {
d10 = Double.parseDouble(Grade10);
anzahlGraden++;
}
if (error > 8) {
display.setText("Please enter more then 2 grades.");
} else {
double gesamt = d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9
+ d10;
double resultat = gesamt / anzahlGraden;
display.setText("Your average is " + resultat);
}
mPrefs = getSharedPreferences(Grade1, 0);
String rememberedText1 = mPrefs.getString("grade1r", "");
grade1r = (EditText) findViewById(R.id.Grade1r);
grade1r.setText(rememberedText1);
}
});
}
protected void onPause() {
super.onPause();
SharedPreferences.Editor ed = mPrefs.edit();
ed.putString("grade1r", grade1r.getText().toString());
ed.commit();
}
}
//you are saving the data to shared pref only in onPause() method.
BTW when you click the button your are reading the “grade1r” it will be empty so the default value is “” is coming
if your want to check the default is printing do like this