Home
› Uncategorized
As mentioned in the post "Activity will be re-started when screen orientation changed", the old activity will be destroyed when orientation changed. And also mentioned in last exercise "EditText keep no change after orientation changed", the states of some views will be kept. But it's not always true; for example, refer to the exercise in "GridView", the GridView will always reload photos from SD Card when orientation changed.
To maintain the old states, we can overriding the method onRetainNonConfigurationInstance() to return the old activity. Via the returned activity object, we can retrieve the fields of the old activity.
Please notice that the method onRetainNonConfigurationInstance() is deprecated, If you are targeting HONEYCOMB or later, consider instead using a Fragment with Fragment.setRetainInstance(boolean).
Modify the java code in the exercise "GridView loading photos from SD Card", override the method onRetainNonConfigurationInstance() to return the activity object, this. In orCreate() method, check if old activity exist by calling getLastNonConfigurationInstance(). If the returned object not null, means old activity exist.
Download the files.
To maintain the old states, we can overriding the method onRetainNonConfigurationInstance() to return the old activity. Via the returned activity object, we can retrieve the fields of the old activity.
Please notice that the method onRetainNonConfigurationInstance() is deprecated, If you are targeting HONEYCOMB or later, consider instead using a Fragment with Fragment.setRetainInstance(boolean).
Modify the java code in the exercise "GridView loading photos from SD Card", override the method onRetainNonConfigurationInstance() to return the activity object, this. In orCreate() method, check if old activity exist by calling getLastNonConfigurationInstance(). If the returned object not null, means old activity exist.
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); GridView gridview = (GridView) findViewById(R.id.gridview); //Check if old activity exist MainActivity oldActivity = (MainActivity)getLastNonConfigurationInstance(); if(oldActivity == null){ myImageAdapter = new ImageAdapter(this); gridview.setAdapter(myImageAdapter); String ExternalStorageDirectoryPath = Environment .getExternalStorageDirectory() .getAbsolutePath(); String targetPath = ExternalStorageDirectoryPath + "/test/"; Toast.makeText(getApplicationContext(), targetPath, Toast.LENGTH_LONG).show(); File targetDirector = new File(targetPath); File[] files = targetDirector.listFiles(); for (File file : files){ myImageAdapter.add(file.getAbsolutePath()); } // Get memory class of this device, exceeding this amount will throw an // OutOfMemory exception. final int memClass = ((ActivityManager)getSystemService(Context.ACTIVITY_SERVICE)) .getMemoryClass(); // Use 1/8th of the available memory for this memory cache. final int cacheSize = 1024 * 1024 * memClass / 8; mMemoryCache = new LruCache<String, Bitmap>(cacheSize) { @Override protected int sizeOf(String key, Bitmap bitmap) { // The cache size will be measured in bytes rather than number of items. return bitmap.getByteCount(); } }; }else{ Toast.makeText(getApplicationContext(), "oldActivity exist", Toast.LENGTH_LONG).show(); myImageAdapter = oldActivity.myImageAdapter; gridview.setAdapter(myImageAdapter); } } @Override public Object onRetainNonConfigurationInstance() { // TODO Auto-generated method stub return this; } -- Delivered by Feed43 service
Related Posts
There is no other posts in this category.Popular
-
Go Launcher Minimal MIUI Theme v1.9 APKThis theme contains 220+ icons & counting! & it also contains the 3 wallpapers seen in the …
-
War Pinball HD v1.1 (Paid Version) Android Apk Game DownloadWar Pinball HD v1.1 Requirements: Android 2.3.3 and up Overview: The amazing new War Pinball HD…
-
Bombergeddon Premium (Qvga, Hvga)Di Game ini seorang tokoh petualang dunia yang terkenal di film layar lebar. akan meramaikan game A…
-
War Pinball HD v1.1 (Paid Version) Android Apk Game DownloadWar Pinball HD v1.1 Requirements: Android 2.3.3 and up Overview: The amazing new War Pinball HD…
-
Rule The Kingdom v3.01Rule the Kingdom: fantastic RPG action, city-building, farming and storytelling! *NEW!* EPIC UPDATE…
-
Asphalt 7: Heat HD v1.0.1 [Gameloft store] (Paid Version) Android Apk Game DownloadAsphalt 7: Heat HD v1.0.1 [Gameloft store] Requirements: Android 2.2 and up Overview: Hit the s…
-
GT Racing: Motor AcademyJoin the Academy! It won't cost a thing to get started! Experience the richest racing simulatio…

Post a Comment
Post a Comment