我在android.app.Fragment
内使用LinearLayout
,其中包含一个android.widget.EditText
,我没有LANDpace布局文件夹。 android.text.TextWatcher
通过addTextChangedListener
添加到EditText。说我输入一封信" a"进入EditText,我旋转Android设备。我希望现有的Fragment可以完全销毁,并创建一个新的Fragment实例。此外,我希望EditText在新Fragement中为空。但令我惊讶的是,发生了以下情况: -
答案 0 :(得分:1)
我怀疑配置更改期间的以下事件序列描述:
活动及其所有碎片都有机会将其当前状态存储在`onSaveInstanceState()中。
活动及其所有碎片都被销毁
再次创建活动及其所有碎片。
恢复活动和片段的状态。如果您没有明确覆盖onSaveInstanceState()
,并且从您自己的super.onCreate()
致电onCreate()
方法,这意味着Android将恢复任何小部件的状态,例如EditText
s。对于每个EditText
,恢复文字会调用beforeTextChanged()
和onTextChanged()
。
请注意,第3步与“重播之前的事件”不同,因为beforeTextChanged()
和onTextChanged()
的参数值将指示不止一个字符的变化。