Android 6 EditText.setError работает неправильно

Я обновился до android 6 и увидел некоторые странные вещи, пытаясь установить валидацию для некоторых editTexts. Я использую android-saripaar для проверки:

@Email(messageResId = R.string.error_email)
private EditText email;
@Password(min = 6, scheme = Password.Scheme.ALPHA_NUMERIC_MIXED_CASE_SYMBOLS)
private EditText password;
@ConfirmPassword
private EditText repassword;
@NotEmpty(messageResId = R.string.error_name)
private EditText firstname;
@NotEmpty(messageResId = R.string.error_name)
private EditText lastname;
private Validator mValidator;

По какой-то причине адрес электронной почты, пароль и пароль подтверждения не отображаются в всплывающем окне, в то время как последнее и первое имя прекрасны

введите описание изображения здесь

Я пробовал без библиотеки и возникла такая же проблема. Использование editText.setError( "Некоторое сообщение" ) Это не произошло до андроида 6 и работало нормально на 5.

Кто-нибудь испытал подобное? если да, то как вы это исправили?

Ответ 1

использовать getString(R.string.error_name)

Ответ 2

Я думаю, что это связано с темой деятельности, это то, что я использую и работаю в android 6.0:

тема активности:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

код: обратите внимание, что я расширяю activity not AppCompatActivity

myeditText.setError("Please enter valid email");
myeditText.setFocusable(true);

Ответ 3

TRY @NotEmpty аннотация в поле edittext электронной почты

@NotEmpty
@Email
private EditText email;