【问题标题】:Save and restore a ButtonText when screen orientation is switched切换屏幕方向时保存和恢复 ButtonText
【发布时间】:2010-11-07 12:25:19
【问题描述】:

像往常一样在 android 中,每次屏幕翻转到纵向/横向模式时,Activity 都会运行从 onSaveInstanceState 到 onDestroy 的生命周期,然后重新创建。

在我的 Activity 中有一个可由用户更改的 ButtonText。它已重置为初始状态,但我必须以某种方式保存最后一个状态。我怎样才能做到这一点,我必须重写 onSaveInstanceState 吗?有人可以举个例子吗?

【问题讨论】:

    标签: android save orientation state flip


    【解决方案1】:

    我遇到了同样的问题,并希望默认实现会负责恢复按钮的文本。不幸的是,它没有。最后我找到了属性 android:freezesText 分别是方法 setFreezesText(boolean)。当设置为 true 时,按钮将自动恢复其文本。

    参见Button的超类TextView的参考:http://developer.android.com/reference/android/widget/TextView.html#attr_android:freezesText

    【讨论】:

    • 这个答案很有效,就像将"android:freezesText="true" 添加到您的按钮 XML 和按钮文本保存在方向更改中一样简单
    【解决方案2】:

    第 1 步:在 Button 上致电 getText().toString() 以获取标题。

    第 2 步:在 Bundle 上调用 putString() 以存储标题。

    步骤#3:在Bundle 上调用getString() 传递给onRestoreInstanceState() 的实现(或者在onCreate() 中,如果Bundle 不是null,如果你愿意的话)来获取你的标题返回,然后在您的 Button 上调用 setText() 以将标题放回。

    Here is a sample project 使用onSaveInstanceState() 保存联系人的Uri(这也会影响Button 是否启用)。

    【讨论】:

      猜你喜欢
      • 2020-08-11
      • 2014-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-15
      相关资源
      最近更新 更多