Quelqu'un peut-il m'expliquer pourquoi la valeur de mon savedInstanceState est nulle ? J'ai 3 widgets, un EditText, un bouton et un TextView. La personne tape ce qu'elle veut. La phrase s'affiche dans le TextView. Je veux conserver l'entrée lorsque je retourne le téléphone. J'ai essayé de sauvegarder l'état mais lorsque l'activité est recréée, mon Toast indique qu'il est nul :
public class MainActivity extends AppCompatActivity {
private EditText input;
private TextView output;
private Button button;
private String newString = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
input = (EditText)findViewById(R.id.input);
output = (TextView) findViewById(R.id.output);
button = (Button)findViewById(R.id.button);
if (savedInstanceState!=null){
Toast.makeText(this, "SAVED IS " + savedInstanceState.getString("example"), Toast.LENGTH_SHORT).show();
}
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
newString = input.getText().toString();
output.setText(newString);
}
});
}
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
outState.putString("example",newString);
}}