In my Android Application I have created three activities. each one contain some inputs fields and button "Next Page" except the final one the button in it responsible for submission. My problem is when user fill all the inputs and before clicking on submit button if he want to go back using the phone default integrated back button and then after checking the first page when he click on "Next Button" in order to go to the page two the inputs in the page two disappeared.(because as you know the activity will restart so all inputs data will be removed)
Is there any way to save the data.
I did saved it when go forward from first page to the third one by using:
Intent intent = new Intent(CreateViolationPageOne.this,CreateViolationPageTwo.class);
String allData = inputStreet.getText().toString()+","+inputVehicle.getText().toString()+","+inputBrand.getText().toString()+
inputColor.getText().toString()+","+inputNumber.getText().toString();
intent.putExtra(CreateViolationPageTwo.ALL_DATA, allData);
startActivity(intent);
Note:
I did not use
finish()
after
StartActivity(intent)
Moreover I did use onSaveInstanceState in my code but the problem still happening:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
if(!inputStreet.getText().toString().isEmpty())
savedInstanceState.putString("inputStreet", inputStreet.getText().toString());
if(!inputVehicle.getText().toString().isEmpty())
savedInstanceState.putString("inputVehicle", inputVehicle.getText().toString());
if(!inputBrand.getText().toString().isEmpty())
savedInstanceState.putString("inputBrand", inputBrand.getText().toString());
if(!inputColor.getText().toString().isEmpty())
savedInstanceState.putString("inputColor", inputColor.getText().toString());
if(!inputNumber.getText().toString().isEmpty())
savedInstanceState.putInt("inputNumber", Integer.parseInt(inputNumber.getText().toString()));
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
}
and then in the onCreate method I added:
if (savedInstanceState != null) {
if(savedInstanceState.containsKey("inputStreet"))
inputStreet.setText(savedInstanceState.getString("inputStreet"));
if(savedInstanceState.containsKey("inputVehicle"))
inputVehicle.setText(savedInstanceState.getString("inputVehicle"));
if(savedInstanceState.containsKey("inputBrand"))
inputBrand.setText(savedInstanceState.getString("inputBrand"));
if(savedInstanceState.containsKey("inputColor"))
inputColor.setText(savedInstanceState.getString("inputColor"));
if(savedInstanceState.containsKey("inputNumber"))
inputNumber.setText(Integer.toString(savedInstanceState.getInt("inputNumber")));
}
This is my first android application and I am new to Android Studio.