Android 为什么在编辑文本时屏幕旋转时会覆盖文本

Android 为什么在编辑文本时屏幕旋转时会覆盖文本,android,android-edittext,Android,Android Edittext,旋转平板电脑后,密码和邮件字段的内容将被覆盖。当在电子邮件和密码字段中写入内容时,转动设备旋转视图,然后在电子邮件字段中显示密码(电子邮件文本被密码覆盖),但密码文本保持不变(密码确实不可见)。 真奇怪 此外,我没有使用内置的EditText,而是通过extends Relativelayout自定义文本字段,它有一个autoCompleteText和按钮。你可以看到下面的图片 您可以看到完整的代码 我想知道为什么旋转设备时文本被覆盖。提前感谢。使用manifest.xml中的android:c

旋转平板电脑后,密码和邮件字段的内容将被覆盖。当在电子邮件和密码字段中写入内容时,转动设备旋转视图,然后在电子邮件字段中显示密码(电子邮件文本被密码覆盖),但密码文本保持不变(密码确实不可见)。 真奇怪

此外,我没有使用内置的EditText,而是通过extends Relativelayout自定义文本字段,它有一个autoCompleteText和按钮。你可以看到下面的图片

您可以看到完整的代码


我想知道为什么旋转设备时文本被覆盖。提前感谢。

使用manifest.xml中的android:configChanges属性,如下所示

<activity
    android:name="com.RecordActivity"
    android:configChanges="keyboardHidden|orientation|screenSize|locale|layoutDirection|layoutDirection"
    android:label="@string/app_name">
</activity>

这是因为当用户旋转手机时,整个
活动会重新启动

第一个(简单的)方法是确保所有视图都指定了ID。有时,它有助于操作系统恢复实例

第二个(困难的[呃])方法是自己保存实例。诸如此类:

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putString("textKey", mEditText.getText().toString());
}
然后在onCreate()或onRestoreInstanceState()中还原状态:


如果您想了解整个过程,请尝试阅读有关
处理运行时更改的内容

抱歉,我没有正确描述问题。很明显,文本被覆盖,而不是切换。那么它能处理这个问题吗?您在哪里声明了自定义控件?在onStart()中?e、 g.自定义emailText=(CustomClearableEditText)findViewById(R.id.email\u地址);在创建活动时
<activity
    android:name="com.RecordActivity"
    android:configChanges="keyboardHidden|orientation|screenSize|locale|layoutDirection|layoutDirection"
    android:label="@string/app_name">
</activity>
@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putString("textKey", mEditText.getText().toString());
}
public void onCreate(Bundle savedInstanceState) {
    if(savedInstanceState != null) {
        mEditText.setText(savedInstanceState.getString("textKey"));
    }
}