当设备旋转时,TextView的文本消失

Yug*_*abu 9 android textview

我正在为Android编写一个电话拨号器应用程序.我为键盘创建了一个布局,其中包含一个TextView和10个按钮.按钮是10位数字(0到9)的键,TextView用于根据按下的键显示数字.

在我的应用程序中,我为每个按下的按钮将文本("0"或"1"等)附加到TextView.如果我按下按钮1,2,3,TextView上文本为123.问题是,让屏幕处于横向模式,TextView包含123,如果我转动它,在纵向模式下TextView上没有文字.

请帮帮我.

use*_*446 14

@jeet推荐的内容对我不起作用.我不得不添加"screenSize".这是您应该在<activity>活动节点的manifest.xml中添加的行:

android:configChanges="keyboardHidden|orientation|screenSize"
Run Code Online (Sandbox Code Playgroud)

因此,完整节点可能如下所示:

<activity
android:name=".YourActivity"
android:label="@string/app_name"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@style/AppTheme.NoActionBar">
Run Code Online (Sandbox Code Playgroud)


jee*_*eet 7

请检查方向更改,调用create方法,这需要再次创建所有视图,因此您需要使用以下方法之一:

  1. 使用onSavedInstance方法并将组件/视图的状态保存到bundle.
  2. 只需在活动标签android:configChanges ="keyboardHidden | orientation"的清单文件中使用以下标志为true.如下:

    <activity android:name=".SampleActivity" android:label="@string/app_name"
        android:configChanges="keyboardHidden|orientation">
        ...
    </activity>
    
    Run Code Online (Sandbox Code Playgroud)


Dig*_*pia 7

造成这种情况的原因是Android每次旋转设备时都会破坏活动并再次创建活动.这主要是为了允许基于纵向/横向模式的不同布局.

处理这种情况最好的办法就是把你需要保持活动中的任何数据,通过响应onSavedInstance事件(名为Android的破坏活动之前),然后重新应用这些标准的onCreate事件.

虽然您可以在configChanges属性中添加"orientation",但请记住,您基本上是在告诉Android您将自己处理与方向更改相关的所有事情 - 包括更改布局等.


归档时间:

查看次数:

11433 次

最近记录:

6 年,11 月 前