Salvarea Stării

Pentru a salva starea, cum ar fi textul completat de utilizator intr-un obiect de tip EditText din interfata grafica vom suprascrie metoda onSaveInstanceState() Ea primește ca parametru un obiect de tip Bundle, care este un fel de hashmap, în care vor fi plasate datele din cadrul activității care se doresc a fi salvate, acestea putând fi identificate prin intermediul unei chei (de tip String).


@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
  /* Trebuie sa apelam metoda din clasa de baza întrucât API-ul Android
  furnizează o implementare implicită pentru salvarea stării unei
  activități, parcurgând ierarhia de componente grafice (obiecte de tip
  `View`) care au asociat un identificator (`android:id`), folosit drept
  cheie în obiectul `Bundle`. Astfel, de regulă, pentru elementele
  interfeței grafice, nu este necesar să se mențină starea, acest lucru
  fiind realizat în mod automat, cu respectarea condiției menționate. 
  super.onSaveInstanceState(savedInstanceState); */

  /* Determian o referinta pentru obiectul de tip EditText din interfata grafica
     cu ID-ul username_edit_text */
  EditText usernameEditText = (EditText)findViewById(R.id.username_edit_text);
  savedInstanceState.putString("SOME_STRING_USED_AS_KEY", usernameEditText.getText().toString());
}


override fun onSaveInstanceState(savedInstanceState: Bundle) {
    /* Trebuie sa apelam metoda din clasa de baza întrucât API-ul Android
    furnizează o implementare implicită pentru salvarea stării unei
    activități, parcurgând ierarhia de componente grafice (obiecte de tip
    `View`) care au asociat un identificator (`android:id`), folosit drept
    cheie în obiectul `Bundle`. Astfel, de regulă, pentru elementele
    interfeței grafice, nu este necesar să se mențină starea, acest lucru
    fiind realizat în mod automat, cu respectarea condiției menționate. 
    super.onSaveInstanceState(savedInstanceState); */

    super.onSaveInstanceState(savedInstanceState)

    /* Determian o referinta pentru obiectul de tip EditText din interfata grafica
       cu ID-ul username_edit_text */
    val usernameEditText = findViewById(R.id.username_edit_text)
    savedInstanceState.putString("SOME_STRING_USED_AS_KEY", usernameEditText.text.toString())
}