目前我正在开发一个动态创建控件的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()中创建控件.
仍然很好奇,如果有一个更简单的方法来完成这个任务,因为我将不得不重构大量的代码来完全实现这个方法.
尝试将此添加到<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)
如果这样做,您的活动将仅在方向更改时重复使用,而不是销毁/重新创建.所以你不必保存你所发生的一切的状态.
| 归档时间: |
|
| 查看次数: |
2193 次 |
| 最近记录: |