Android:动态创建控件和方向更改

Big*_*lHt 2 android

目前我正在开发一个动态创建控件的Android应用程序.每次用户单击按钮时,按钮下方都会出现一个新的EditText,用户可以与EditText进行交互.但是,如果屏幕方向发生变化,则用户创建的EditText也会消失.

创建EditText的用户的代码示例:(位于onClick()中,p是基本layoutParamas,布局是位于按钮下方的LinearLayout)

    EditText editText = new EditText(this);
    layout.addView(buttonView, p);
Run Code Online (Sandbox Code Playgroud)

想知道当屏幕方向改变时保存布局最简单的方法是什么,所以我不会丢失任何控件,或者我动态地创建控件错误.

谢谢.

更新:通过重写onSaveInstanceState(),我能够保存一个对象,该对象包含用户有意添加的所有控件的列表.使用此列表,我能够在onCreate()中创建控件.

仍然很好奇,如果有一个更简单的方法来完成这个任务,因为我将不得不重构大量的代码来完全实现这个方法.

Mar*_*k B 5

尝试将此添加到<activity>清单文件中的标记:

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

然后在活动类中执行此操作:

@Override
public void onConfigurationChanged(final Configuration newConfig)
{
    // Ignore orientation change to keep activity from restarting
    super.onConfigurationChanged(newConfig);
}
Run Code Online (Sandbox Code Playgroud)

如果这样做,您的活动将仅在方向更改时重复使用,而不是销毁/重新创建.所以你不必保存你所发生的一切的状态.