【问题标题】:Android Edittext errors disappearing after screen rotation屏幕旋转后Android Edittext错误消失
【发布时间】:2015-07-19 20:17:39
【问题描述】:

我在使用 Android Edittext 时遇到问题。 我有一个表格。如果验证不成功,我用setError()方法给edittext设置错误。

但是,在某些设备上,当我旋转屏幕时,错误消失了。

我到处找,但似乎找不到解决办法。

有什么想法吗?

【问题讨论】:

  • 您可以将状态变量设置为您保存在 onSaveInstanceState() 中的编辑文本并在您的 onCreate() 方法中检索并将错误(或不)重置为编辑文本。

标签: android android-edittext


【解决方案1】:

当您旋转设备时,您的 Activity 会重新创建,之前的 Activity 实例会被销毁,并会创建新的 Activity 实例,然后是 Activity 生命周期的所有方法。检查您在 EditText 中显示错误的方法。

【讨论】:

    【解决方案2】:

    您是否尝试过清单中的以下代码..

     <activity
          android:name=".YourActivity"
                 android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:windowSoftInputMode="adjustPan"/>
    

    【讨论】:

      【解决方案3】:

      尝试在清单中为您的活动添加android:configChanges="orientation|keyboardHidden" 属性。

      【讨论】:

        【解决方案4】:

        我也有同样的问题。我认为android的视图对象会在他们的on上处理这个,但他们没有。所以我认为解决方案是将这些信息保存在 onSaveInstanceState(Bundle) 中,然后在 onRestoreInstanceState(Bundle) 中恢复它(如果您正在使用 Activity 的子类)。这里有一个例子来说明: 假设您正在使用 Activity 的子类,并且您有一个登录表单,其中包含两个编辑文本,一个用于电子邮件,一个用于密码。

            EditText mEmail = null;
            EditText mPassword = null;
        
            @Override
            protected void onRestoreInstanceState(Bundle savedInstanceState) {
                super.onRestoreInstanceState(savedInstanceState);
                if (savedInstanceState != null) {
                    mEmail.setError( savedInstanceState.getString("email") );
                    mPassword.setError( savedInstanceState.getString("password") );
                }
            }
        
            @Override
            protected void onSaveInstanceState(Bundle outState) {
                super.onSaveInstanceState(outState);
                outState.putString("email", mEmail.getError());
                outState.putString("password", mPassword.getError());
            }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-07-15
          • 1970-01-01
          • 2012-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多