Created
June 3, 2020 18:03
-
-
Save SalaSuresh/5a2d7d51105efefafa854d2d8ed03aed to your computer and use it in GitHub Desktop.
This is the demo code to maintain the same data after changing orientation of application in Android. (This contains 2 sample code one onSaveInstanceState and another is using ViewModel)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.suresh.androidpractice.orientationchange; | |
import android.os.Bundle; | |
import android.view.View; | |
import android.widget.TextView; | |
import androidx.annotation.Nullable; | |
import androidx.appcompat.app.AppCompatActivity; | |
import androidx.lifecycle.ViewModelProviders; | |
import com.suresh.androidpractice.R; | |
public class DemoActivity extends AppCompatActivity { | |
@Override | |
protected void onCreate(@Nullable Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.layout_common); | |
TextView textViewDemo = findViewById(R.id.text_common); | |
textViewDemo.setVisibility(View.VISIBLE); | |
DemoActivityViewModel model = ViewModelProviders.of(this).get(DemoActivityViewModel.class); | |
// DemoActivityViewModel model = new DemoActivityViewModel(); | |
String myRandomNumber = model.getUUID(); | |
textViewDemo.setText(myRandomNumber); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.suresh.androidpractice.orientationchange; | |
import androidx.lifecycle.ViewModel; | |
import java.util.UUID; | |
public class DemoActivityViewModel extends ViewModel { | |
private String myRandomNumber; | |
public String getUUID() { | |
if (myRandomNumber == null) { | |
myRandomNumber = "Generated Id: " + UUID.randomUUID().toString().replace("-", ""); | |
} | |
return myRandomNumber; | |
} | |
@Override | |
protected void onCleared() { | |
super.onCleared(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.suresh.androidpractice.orientationchange; | |
import android.content.res.Configuration; | |
import android.os.Bundle; | |
import android.util.Log; | |
import android.view.View; | |
import android.widget.TextView; | |
import androidx.annotation.NonNull; | |
import androidx.annotation.Nullable; | |
import androidx.appcompat.app.AppCompatActivity; | |
import com.suresh.androidpractice.R; | |
import java.util.UUID; | |
public class MainActivity extends AppCompatActivity { | |
private String randomUUID = ""; | |
private static final String KEY_UUID = "UUID"; | |
private static final String TAG = "orientation_demo"; | |
@Override | |
protected void onCreate(@Nullable Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.layout_common); | |
TextView textViewDemo = findViewById(R.id.text_common); | |
textViewDemo.setVisibility(View.VISIBLE); | |
textViewDemo.setText("Orientation change demo"); | |
randomUUID = (savedInstanceState == null) ? getUUID() : savedInstanceState.getString(KEY_UUID); | |
textViewDemo.setText(randomUUID); | |
Log.e(TAG, "OnCreate: randomUUID: " + randomUUID); | |
} | |
@Override | |
public void onConfigurationChanged(@NonNull Configuration newConfig) { | |
super.onConfigurationChanged(newConfig); | |
Log.e(TAG, "onConfigurationChanged() called with: newConfig = [" + newConfig + "]"); | |
} | |
@Override | |
protected void onSaveInstanceState(@NonNull Bundle outState) { | |
super.onSaveInstanceState(outState); | |
Log.e(TAG, "onSaveInstanceState() called with: outState = [" + outState + "]"); | |
outState.putString(KEY_UUID, randomUUID); | |
Log.e(TAG, "Random UUID saved"); | |
} | |
@Override | |
protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) { | |
super.onRestoreInstanceState(savedInstanceState); | |
Log.e(TAG, "onRestoreInstanceState() called with: savedInstanceState = [" + savedInstanceState + "]"); | |
Log.e(TAG, "Restored Random UUID: " + savedInstanceState.getString(KEY_UUID)); | |
} | |
private String getUUID() { | |
return "Generated Id: " + UUID.randomUUID().toString().replace("-", ""); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment