Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何轻松处理方向变化_Android_Orientation Changes - Fatal编程技术网

Android 如何轻松处理方向变化

Android 如何轻松处理方向变化,android,orientation-changes,Android,Orientation Changes,我正在开发一个android应用程序,它添加了每个视图程序。 当用户打开屏幕时,我只想再次显示填写的值。 有没有一个简单的方法让Android自动完成这个任务 我的应用程序是完全动态的,所以它没有预先确定的布局,这使得它更加困难 那么,如何轻松保存屏幕状态呢?每次方向改变,android都会创建新视图并销毁旧视图。可以在方向更改时保存数据,并在创建新视图时重新初始化 使用活动的onConfiguration Changed方法检测方向更改 public void onConfigurationC

我正在开发一个android应用程序,它添加了每个视图程序。 当用户打开屏幕时,我只想再次显示填写的值。
有没有一个简单的方法让Android自动完成这个任务

我的应用程序是完全动态的,所以它没有预先确定的布局,这使得它更加困难


那么,如何轻松保存屏幕状态呢?

每次方向改变,android都会创建新视图并销毁旧视图。可以在方向更改时保存数据,并在创建新视图时重新初始化

使用活动的
onConfiguration Changed
方法检测方向更改

public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    // Checks the orientation of the screen
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
    }
  }
不要忘记像这样编辑AndroidManifest.XML中的适当元素,以包含
android:configChanges

<activity android:name=".MyActivity"
          android:configChanges="orientation|keyboardHidden"
          android:label="@string/app_name">

有关Hein正确答案的详细解释,请参阅我之前的帖子:


为什么不修复方向?通常,EditBox等小部件会保存其状态,包括方向更改时的值