это красная метка, ваш код работает отлично, потому что метод setError () доступен только для виджетов, которые расширяют TextView. Но, к счастью, все соответствующие виджеты для сообщений об ошибках наследуются от TextView: EditText, AutoCompleteTextView, CheckBox и RadioButton (ну, иерархия странная, но неважная). Но есть одна проблема с использованием этого подхода. Текст сообщения виден только тогда, когда вид имеет фокус. В противном случае Android отображает только красный маркер. Попробуйте установить фокус на сенсорном экране с помощью переключателя или флажка