Есть ли какой-нибудь виджет, в EditText
котором есть кросс-кнопка, или есть свойство, для EditText
которого он создается автоматически? Я хочу, чтобы кнопка с крестиком удаляла любой текст, написанный на EditText
.
android
android-edittext
Арун Бадоле
источник
источник
Ответы:
Используйте следующий макет:
Вы также можете использовать идентификатор кнопки и выполнить любое действие, которое вы хотите, для его метода onClickListener.
источник
Если вы используете DroidParts , я только что добавил ClearableEditText .
Вот как это выглядит с пользовательским фоном и значком очистки, установленным
abs__ic_clear_holo_light
из ActionBarSherlock :источник
EditText
. Спасибо @yanchenkoРешение 2020 с помощью Material Design Components для Android:
Добавьте материальные компоненты к вашей настройке Gradle:
Ищите последнюю версию здесь: https://maven.google.com/
или если вы не обновились до использования библиотек AndroidX, вы можете добавить его следующим образом:
затем
Обратите внимание: app: endIconMode = "clear_text"
Как обсуждено здесь Материал дизайн документов
источник
<androidx.appcompat.widget.AppCompatEditText/>
? не могли бы вы помочь мне в этом жеЭто решение Котлин. Поместите этот вспомогательный метод в некоторый файл
А затем используйте его следующим образом в
onCreate
методе, и вы должны хорошоКстати, вы должны добавить
R.drawable.ic_clear
или очистить значок сначала. Это из Google- https://material.io/tools/icons/?icon=clear&style=baselineисточник
this.clearFocus()
перед оператором return true, вы можете прослушать это событие в вызывающей программе EditText соonFocusChange
слушателемsetCompoundDrawablesWithIntrinsicBounds(0, 0, clearIcon, 0)
. Вы можете передать левый ID нарисованного значка в качестве нового параметра этой функции и поместить его в вызов.Библиотека поддержки Android имеет
SearchView
класс, который делает именно это. (Не получено,EditText
хотя, поэтому придется использоватьSearchView.OnQueryTextListener
вместоTextWatcher
)Используйте в XML так:
источник
где х это:
источник
Для
drawable resource
вы можете использовать стандартные изображения Android:http://androiddrawables.com/Menu.html
Например :
источник
Если вы не хотите использовать пользовательские виды или специальные макеты, вы можете использовать 9-patch для создания кнопки (X).
Пример: http://postimg.org/image/tssjmt97p/ (у меня недостаточно очков для публикации изображений в StackOverflow)
Пересечение правого и нижнего черных пикселей представляет область содержимого. Все, что находится за пределами этой области, является дополнением. Таким образом, чтобы определить, что пользователь нажал на x, вы можете установить OnTouchListener следующим образом:
В зависимости от ваших потребностей это решение может работать лучше в некоторых случаях. Я предпочитаю сделать мой XML менее сложным. Это также помогает, если вы хотите иметь значок слева, так как вы можете просто включить его в патч 9.
источник
Я сделал часть интерфейса, как показано ниже:
edittext_bg.xml
balloon_overlay_close.png
Кнопка Крест / Очистить скрыть / показать:
Обработка поисковых материалов (т. Е. Когда пользователь нажимает кнопку поиска на программной клавиатуре)
Кнопка Очистить / Крест
источник
использование
источник
Вот полная библиотека с виджетом: https://github.com/opprime/EditTextField
Чтобы использовать его, вы должны добавить зависимость:
В файле layout.xml вы можете поиграть с настройками виджета:
app: clearButtonMode , может иметь такие значения: никогда не всегда, когда редактирование, если не редактирование
Приложение: clearButtonDrawable
Образец в действии:
источник
Просто поместите крестик, как
drawableEnd
в вашемEditText
:и используйте расширение для обработки клика (или используйте
OnTouchListener
непосредственно на вашемEditText
):использование расширения:
источник
Вы можете использовать этот фрагмент с ответом Jaydip для более чем одной кнопки. просто позвоните после получения ссылки на ET и Button Elements. Я использовал кнопку vecotr, поэтому вы должны изменить элемент Button на ImageButton:
источник
Если вы в макете кадра или вы можете создать макет кадра, я попробовал другой подход ....
Это текст для редактирования, где я ставлю крестик как правый рисунок, а после этого я помещаю прозрачную кнопку, которая очищает текст.
источник
источник