Kann jemand bitte erklären, warum der Wert in meinem savedInstanceState null ist? Ich habe 3 Widgets, einen EditText, Button und TextView. Die Person tippt ein, was sie will. Die Phrase erscheint in der Textansicht. Ich möchte die Eingabe beibehalten, wenn ich das Telefon umlege. Ich versuchte, den Sparzustand aber wenn die Aktivität neu erstellt wird, mein Toast sagt, dass es null ist:savedInstanceState gibt null zurück
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);
}}
Was meinst du genau mit "Aktivität neu erstellt", wie und wann es neu erstellt wird –
Wenn das Gerät gedreht wird –