0

Android Edittext に問題があります。フォームがあります。検証に失敗した場合は、setError() メソッドを使用して edittext にエラーを設定します。

ただし、一部のデバイスでは、画面を回転させるとエラーが消えます。

私はいたるところを見てきましたが、それに対する解決策を見つけることができないようです。

何か案は ?

4

4 に答える 4

0

android:configChanges="orientation|keyboardHidden"マニフェストにアクティビティの属性を追加してみてください。

于 2013-10-25T09:29:43.757 に答える
0

マニフェストで以下のコードを試しましたか..

 <activity
      android:name=".YourActivity"
             android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:windowSoftInputMode="adjustPan"/>
于 2013-10-25T09:28:30.563 に答える
0

私は同じ問題を抱えています。私はアンドロイドのビューオブジェクトがこれを処理すると思っていましたが、そうではありません。したがって、解決策は、この情報を onSaveInstanceState(Bundle) に保存し、たとえば onRestoreInstanceState(Bundle) に復元することだと思います(アクティビティのサブクラスを使用している場合)。説明する例を次に示します。Activity のサブクラスを使用していて、2 つの編集テキスト (1 つは電子メール用、もう 1 つはパスワード用) を含むログイン フォームがあるとします。

    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());
    }
于 2015-07-19T11:47:41.873 に答える