gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 07:41:16 26 4
gpt4 key购买 nike

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

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

    EditText editText = new EditText(this);
layout.addView(buttonView, p);

想知道当屏幕方向发生变化时保存布局的最简单方法是什么,这样我就不会丢失任何控件,或者我动态地创建了错误的控件。

谢谢。

更新:通过覆盖 onSaveInstanceState(),我能够保存一个对象,其中包含用户最初添加的所有控件的列表。使用此列表,我能够在 onCreate() 中创建控件。

仍然好奇是否有更简单的方法来完成此任务,因为我必须重构大量代码才能完全实现此方法。

最佳答案

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

android:configChanges="orientation|keyboardHidden"

然后在 Activity 类中这样做:

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

如果您这样做,您的 Activity 将仅在方向更改时被重用,而不是被销毁/重新创建。因此,您不必保存正在进行的所有操作的状态。

关于Android:动态创建控件和方向改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2165741/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com