Android Edittext に問題があります。フォームがあります。検証に失敗した場合は、setError() メソッドを使用して edittext にエラーを設定します。
ただし、一部のデバイスでは、画面を回転させるとエラーが消えます。
私はいたるところを見てきましたが、それに対する解決策を見つけることができないようです。
何か案は ?
Android Edittext に問題があります。フォームがあります。検証に失敗した場合は、setError() メソッドを使用して edittext にエラーを設定します。
ただし、一部のデバイスでは、画面を回転させるとエラーが消えます。
私はいたるところを見てきましたが、それに対する解決策を見つけることができないようです。
何か案は ?
android:configChanges="orientation|keyboardHidden"
マニフェストにアクティビティの属性を追加してみてください。
マニフェストで以下のコードを試しましたか..
<activity
android:name=".YourActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:windowSoftInputMode="adjustPan"/>
私は同じ問題を抱えています。私はアンドロイドのビューオブジェクトがこれを処理すると思っていましたが、そうではありません。したがって、解決策は、この情報を 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());
}