屏幕方向以及UI界面状态的保存

首先,基于android studio,先将虚拟手机的屏幕自动翻转打开


1.设置屏幕锁定

在Androidmanifests.xml文件中,设置 android:screenOrientation=“protrait"或"landscape” ,锁定屏幕竖直或水平。

2.创建横向布局文件的副本

create landscape variation

3.屏幕翻转或home键暂停activity保存数据

利用onCreate(Bundle savedInstanceState)方法里的savedInstanceState参数传递数据

  1. 先利用protected void onSaveInstanceState(@NonNull Bundle outState)方法(屏幕翻转或home键暂停时临时将数据保存起来)将数据以key-value形式保存。
protected void onSaveInstanceState(@NonNull Bundle outState) {        super.onSaveInstanceState(outState);        outState.putString("KEY",textView.getText().toString());  //抓取TextView内容保存到outState变量中    }
  1. 在onCreate()方法中利用Bundle类型的savedInstanceState参数获取数据
    先判断savedInstanceState参数是否为空
if(savedInstanceState!=null){            textView.setText(savedInstanceState.getString("KEY"));        }

利用代码补全的onSaveInstanceState()是这样的

public void onSaveInstanceState(@NonNull Bundle outState, @NonNull PersistableBundle outPersistentState) {        super.onSaveInstanceState(outState, outPersistentState);    }

翻转后会丢失数据,改成protected方法并去掉后面那个参数就可以

更多相关文章

  1. Android 禁止屏幕旋转 & 屏幕旋转不刷新 Activity & 动态更改屏
  2. Android 下通过jni读取i2c数据
  3. Android动态刷新listview中的数据
  4. android使用全局变量传递数据
  5. 如何使用 sqlite3 访问 Android 手机的数据库
  6. Android中使用代码控制Wifi及数据连接网络开关
  7. android下的数据存储

随机推荐

  1. 如何使用LINQ、Lambda 表达式 、委托快速
  2. C#中将DataGridView中的数据导入到Csv文
  3. C#学习记录:编写高质量代码改善整理建议9-
  4. c# 如何生成自定义图片?c# 生成自定义图片
  5. C#学习记录:编写高质量代码改善整理建议4-
  6. c++中string&char *&char[]之间如何转换(
  7. 基于C的文件操作 (FILE*、fstream、window
  8. C#学习记录:编写高质量代码改善整理建议1-
  9. 怎样用C#打印一个n行的菱形?实战详解
  10. Paypal 支付功能的 C# .NET / JS 实现