Seperti yang dijawab Dhruv Gairola, Anda dapat menyimpan status aplikasi dengan menggunakan Bundle storedInstanceState. Saya mencoba memberikan contoh yang sangat sederhana yang dapat dipahami oleh pelajar baru seperti saya dengan mudah.
Misalkan, Anda memiliki fragmen sederhana dengan TextView dan Button. Setiap kali Anda mengklik tombol, teks berubah. Sekarang, ubah orientasi perangkat / emulator Anda dan perhatikan bahwa Anda kehilangan data (artinya data yang diubah setelah Anda mengklik yang didapat) dan fragmen dimulai seperti yang pertama kali lagi. Dengan menggunakan Bundle storedInstanceState kita bisa menyingkirkan ini. Jika Anda melihat siklus hidup fragmen. Fragment Lifecylce Anda akan mendapatkan bahwa metode "onSaveInstanceState" dipanggil saat fragmen akan dimusnahkan.
Jadi, kita bisa menyimpan keadaan berarti nilai teks yang diubah ke dalam bundel itu seperti ini
int counter = 0;
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("value",counter);
}
Setelah Anda membuat orientasi, metode "onCreate" akan dipanggil bukan? jadi kita bisa melakukan ini
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(savedInstanceState == null){
//it is the first time the fragment is being called
counter = 0;
}else{
//not the first time so we will check SavedInstanceState bundle
counter = savedInstanceState.getInt("value",0); //here zero is the default value
}
}
Sekarang, Anda tidak akan kehilangan nilai Anda setelah orientasi. Nilai yang diubah akan selalu ditampilkan.