I’m trying to save user entries into a form, but for some reason I can not get it to work. When I kill the application and restart the data does not appear.
My aim is that if a user is halfway through completing the form and the application is killed, that when the application relaunches the entries will still remain. Any guidance would be much appreciated.
public class MainActivity extends Activity {
public final static String EXTRA_FROM = "com.example.assignment1.FROM";
public final static String EXTRA_TO = "com.example.assignment1.TO";
public final static String EXTRA_CC = "com.example.assignment1.CC";
public final static String EXTRA_BCC = "com.example.assignment1.BCC";
public final static String EXTRA_SUBJECT = "com.example.assignment1.SUBJECT";
public final static String EXTRA_COMPOSE = "com.example.assignment1.COMPOSE";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
protected void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
EditText emailFrom =(EditText) findViewById(R.id.editEmailFrom);
EditText emailTo =(EditText) findViewById(R.id.editEmailTo);
EditText emailCc =(EditText) findViewById(R.id.editEmailCc);
EditText emailBcc =(EditText) findViewById(R.id.editEmailBcc);
EditText emailSubject =(EditText) findViewById(R.id.editEmailSubject);
EditText emailCompose =(EditText) findViewById(R.id.editEmailCompose);
String from = emailFrom.getText().toString();
String to = emailTo.getText().toString();
String cc = emailCc.getText().toString();
String bcc = emailBcc.getText().toString();
String subject = emailSubject.getText().toString();
String compose = emailCompose.getText().toString();
outState.putString(EXTRA_FROM, from);
outState.putString(EXTRA_TO, to);
outState.putString(EXTRA_CC, cc);
outState.putString(EXTRA_BCC, bcc);
outState.putString(EXTRA_SUBJECT, subject);
outState.putString(EXTRA_COMPOSE, compose);
}
@Override
protected void onRestoreInstanceState(Bundle savedState)
{
EditText emailFrom =(EditText) findViewById(R.id.editEmailFrom);
EditText emailTo =(EditText) findViewById(R.id.editEmailTo);
EditText emailCc =(EditText) findViewById(R.id.editEmailCc);
EditText emailBcc =(EditText) findViewById(R.id.editEmailBcc);
EditText emailSubject =(EditText) findViewById(R.id.editEmailSubject);
EditText emailCompose =(EditText) findViewById(R.id.editEmailCompose);
String from = savedState.getString(EXTRA_FROM);
String to = savedState.getString(EXTRA_TO);
String cc = savedState.getString(EXTRA_CC);
String bcc = savedState.getString(EXTRA_BCC);
String subject = savedState.getString(EXTRA_SUBJECT);
String compose = savedState.getString(EXTRA_COMPOSE);
emailFrom.setText(from);
emailTo.setText(to);
emailCc.setText(cc);
emailBcc.setText(bcc);
emailSubject.setText(subject);
emailCompose.setText(compose);
}
public void emailSend (View sendButton)
{
Intent intent = new Intent(this,DisplayEmailActivity.class);
EditText emailFrom =(EditText) findViewById(R.id.editEmailFrom);
EditText emailTo =(EditText) findViewById(R.id.editEmailTo);
EditText emailCc =(EditText) findViewById(R.id.editEmailCc);
EditText emailBcc =(EditText) findViewById(R.id.editEmailBcc);
EditText emailSubject =(EditText) findViewById(R.id.editEmailSubject);
EditText emailCompose =(EditText) findViewById(R.id.editEmailCompose);
String from = emailFrom.getText().toString();
String to = emailTo.getText().toString();
String cc = emailCc.getText().toString();
String bcc = emailBcc.getText().toString();
String subject = emailSubject.getText().toString();
String compose = emailCompose.getText().toString();
intent.putExtra(EXTRA_FROM,from);
intent.putExtra(EXTRA_TO,to);
intent.putExtra(EXTRA_CC,cc);
intent.putExtra(EXTRA_BCC,bcc);
intent.putExtra(EXTRA_SUBJECT,subject);
intent.putExtra(EXTRA_COMPOSE,compose);
startActivity(intent);
}
}
To save a few items your best shot is to use SharedPreferences.
I’ve put an example some time ago on this post: SharedPreferences.
Good luck.