首页>Program>source

我是android新手.我已经编写了一些程序,并在手机上试用了它们.当我切换方向时,就像我的手机重新启动程序一样.我所有的变量都被重置.实际上,唯一不重置的是编辑文本视图中的文本.是什么原因造成的? 我该如何阻止它? 我试图在谷歌和堆栈溢出上查找它,但我所看到的是如何从一起改变视图方向.我什至尝试在一个程序中使用get text方法设置变量,但这不起作用。

最新回答
  • 9天前
    1 #

    When I switch orientations its like my phone restarts the program.

    准确地说,目前可见的 Activity   被完全破坏并重新创建.您的"应用程序"的其他组件可能会也可能不会受到影响。

    威兹威兹

    这是设计使然,对于停止它,您可能想要也可能不想这样做。

    如上所述,可以指定您自己处理"配置"更改(例如方向),甚至只强制执行一次(例如,横向或纵向)。

    但是,在许多情况下,应用程序开发人员可能会根据设备是处于一个方向还是另一个方向来选择更改布局.某些布局可能在纵向模式下效果很好,但在横向条件下效果不佳(反之亦然),并且该设计方法的目的是(破坏/重新创建当前可见的维兹维兹) )就是为了适应这一点。

    如果开发人员选择不处理配置,请自行更改或强制执行特定方向,则处理问题的正确方法是确保在"易失性" UI元素(例如EditTexts)中输入的所有数据均已正确保存并在创建后重新创建 方向改变。

    要做到这一点,请了解

    What causes this? How can I stop it?

      生命周期是至关重要的,因为利用各种 Activity   在整个生命周期中调用的方法来保存/还原数据。

    基本阅读...

    运行时更改

    活动生命周期

    应用基础知识

  • 9天前
    2 #

    确保您实现 Activity   并准备从 Activity恢复您的活动   在维兹维兹   一切都会好起来的.这些将在轮换期间被调用,因此之后您将拥有一个新的活动,但是如果您保存了状态并可以将其还原,则无需担心。

  • 9天前
    3 #

    这是设计使然, onSaveInstanceState   方向改变时将被调用.如果不希望这样做,可以将其设置为不响应 Bundle中的方向变化 ,因此不会重新创建您的活动,请设置 onCreate   因为您的活动会将其限制为纵向模式。

    有关设置的更多信息,请参见此。

  • 9天前
    4 #

    请参见此答案:查找Robert的答案.这正是您需要做的。

  • 9天前
    5 #

    最好添加 onCreate AndroidManifest.xml AndroidManifest.xml activity android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden"

    android:configChanges="keyboardHidden|orientation|screenSize" to

  • 如何从Python函数内部以字符串形式显示函数名称
  • c++:增强Lambda与凤凰