【问题标题】:Keeping data when screen orientation change屏幕方向更改时保留数据
【发布时间】:2017-05-09 11:39:52
【问题描述】:

所以我正在使用 Visual Studio 编写一个 Android 应用程序。我想要一个具有纵向和横向方向的 Activity。当我转动我的设备时,我的 Activity 中的数据消失了。所以我在网上查了一下,发现有一条线可以放入保存数据的清单中,这很有效! android:configChanges="方向|keyboardHidden|screenSize" 除了我所有的观点都是混乱和取代的。我使用了两种不同的布局。一个用于纵向视图,另一个用于景观。我想保持数据端切换布局,有什么想法吗? 谢谢

【问题讨论】:

标签: java android layout landscape portrait


【解决方案1】:

覆盖

protected void onSaveInstanceState(Bundle outState) 

在键值对中的outState变量中的方法和保存值

protected void onCreate(Bundle savedInstanceState)

当方向改变时 savedInstanceState 变量将具有与您保存在中相同的值

onSaveInstanceState

注意:Activity 首次启动的时间

protected void onCreate(Bundle savedInstanceState)

savedInstanceState 将具有空值

【讨论】:

    【解决方案2】:

    只需将此行与 Mainfest.xml 文件的活动标记放在一起

    android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"

    最终代码将如下所示:

    <activity android:name="com.xyz.myapp.MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"/>

    【讨论】:

    • 它没有用。它保留数据,但我也想更改视图
    • 在每个文件夹中写入具有相同名称的xml layout/main.xml 用于纵向和layout-land/main.xml 用于横向更多info visit this
    • 我做到了,但不会改变。我认为我在清单中放入的行只是保留数据并且不处理布局切换
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多