Подтвердить что ты не робот

Настройка значка setError для TextView

Я хочу установить метод setError на мой TextView, с пользовательским значком вместо значка Android по умолчанию. Поэтому я попробовал это:

((EditText)findViewById(R.id.edtTitle)).setError(getResources().getText(R.string.errEmptyTitle), 
         getResources().getDrawable(R.drawable.ico_warning_small);

Он показывает мне пользовательское сообщение, но не пользовательский значок. Я тоже это пробовал:

Drawable warning = (Drawable)getResources().getDrawable(R.drawable.ico_warning_small);
((EditText)findViewById(R.id.edtTitle))
      .setError(getResources().getText(R.string.errEmptyTitle), warning);

Совсем то же самое, но я все же решил дать ему поход. Однако это тоже не помогло - я до сих пор не вижу иконку. Я попытался использовать какой-то другой значок системы Android, просто чтобы увидеть, вижу ли я их, и нет, я тоже их не вижу.

Так что я делаю неправильно? Есть ли способ установить этот пользовательский значок?

4b9b3361

Ответ 2

Вам нужно установить границы на drawable перед использованием в setError.

drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
editText.setError("error", drawable);

Ответ 3

Если вы вообще не хотите показывать какой-либо значок, используйте

editText.setError("error", null);

Ответ 4

    Drawable customErrorDrawable = getResources().getDrawable(R.drawable.error_icon);
        customErrorDrawable.setBounds(0, 0, customErrorDrawable.getIntrinsicWidth(), customErrorDrawable.getIntrinsicHeight());


 editText.setError("please enter data",customErrorDrawable);