2012-07-18 79 views
3

我正在研究一個可以添加每個視圖programmaticaly的android應用程序。 當用戶轉動屏幕時,我只想要填充的值再次顯示。
有沒有一種簡單的方法讓Android自動執行此操作?如何輕鬆地處理方向更改

我的應用程序是完全動態的,所以它沒有預定的佈局,這使得它更難。

那麼,我該如何輕鬆保存我的屏幕狀態?

+1

你爲什麼不修複方向? – pixelscreen 2012-07-18 09:47:59

+1

通常,EditBoxes等小部件會保存其狀態,包括取向變化的值 – 2012-07-18 09:54:11

回答

6

每次定位更改,android都會創建新視圖並銷燬舊視圖。你可以保存你的數據時的方向變化,並創建新的視圖時

使用onConfigurationChanged活動的方法來檢測取向變化重新初始化

public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    // Checks the orientation of the screen 
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); 
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ 
     Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); 
    } 
    } 

不要忘了在AndroidManifest編輯相應的元素.XML這樣包括android:configChanges

<activity android:name=".MyActivity" 
      android:configChanges="orientation|keyboardHidden" 
      android:label="@string/app_name">