zoukankan      html  css  js  c++  java
  • Android配置横屏资源与Activity生命周期

      屏幕旋转会改变设备配置(device configguration)。设备设置的特征有:屏幕方向、屏幕像素密度、屏幕尺寸、键盘类型、底座模式以及语言等。

        当屏幕发现旋转时(设备配置更改),Android会销毁当前Activity,为新配置寻找最佳资源。


      Step1.创建水平模式布局

      右键res目录→New→Android resource directory

      

      单击>>后选择Landscape(横屏)选项

      

      点OK后发现res/layout-land目录下没有布局资源

      注意:

      切换至project视图创建即可,效果如下图

      


      虽然切换资源是个不错的主意,但是屏幕旋转会导致activity销毁与新建,即数据丢失。

      同时,Android有一个解决此类问题的好办法。

      onSaveInstanceState方法,该方法会将数据以Map形式存储

       

     1 public class MainActivity extends AppCompatActivity {
     2     private static final String KEY_INDEX="index";
     3     int mCurrentIndex;
     4     @Override
     5     protected void onCreate(Bundle savedInstanceState) {
     6         super.onCreate(savedInstanceState);
     7         setContentView(R.layout.activity_main);
     8         if(savedInstanceState!=null)
     9             mCurrentIndex=savedInstanceState.getInt(KEY_INDEX,0);
    10     }
    11 
    12     @Override
    13     protected void onSaveInstanceState(Bundle outState) {
    14         super.onSaveInstanceState(outState);
    15         outState.putInt(KEY_INDEX,mCurrentIndex);
    16     }
    17 }

     新增一个常量mCurrentIndex,在onCreate()方法中赋值给它

  • 相关阅读:
    C puzzles详解【51-57题】
    C puzzles详解【46-50题】
    C puzzles详解【38-45题】
    C puzzles详解【34-37题】
    C puzzles详解【31-33题】
    C puzzles详解【26-30题】
    C puzzles详解【21-25题】
    C puzzles详解【16-20题】
    使用C++模板实现栈的求最小值功能
    模拟求幂运算,考虑的已经很周全了
  • 原文地址:https://www.cnblogs.com/vi3nty/p/7695251.html
Copyright © 2011-2022 走看看