Existe algum widget como o EditText
que contém um botão cruzado ou alguma propriedade para a EditText
qual ele é criado automaticamente? Quero que o botão de cruz apague qualquer texto escrito EditText
.
android
android-edittext
Arun Badole
fonte
fonte
Respostas:
Use o seguinte layout:
Você também pode usar a identificação do botão e executar qualquer ação que desejar no método onClickListener.
fonte
Se você usa o DroidParts , acabei de adicionar o ClearableEditText .
Aqui está o que parece com um fundo personalizado e claro conjunto de ícones a
abs__ic_clear_holo_light
partir ActionBarSherlock :fonte
EditText
. Thx @yanchenkoSolução 2020 via Material Design Components para Android:
Adicione Componentes do material à sua configuração de gradiente:
Procure a versão mais recente aqui: https://maven.google.com/
ou se você não tiver atualizado o uso das bibliotecas do AndroidX, poderá adicioná-lo desta maneira:
Então
Preste atenção em: app: endIconMode = "clear_text"
Conforme discutido aqui , documentos de design de materiais
fonte
<androidx.appcompat.widget.AppCompatEditText/>
? você pode por favor me ajudar na mesmaEsta é uma solução kotlin. Coloque esse método auxiliar em algum arquivo kotlin-
E, em seguida, use-o da seguinte forma no
onCreate
método e você deve ser bom emBTW, você deve adicionar
R.drawable.ic_clear
ou o ícone claro primeiro. Este é do google- https://material.io/tools/icons/?icon=clear&style=baselinefonte
this.clearFocus()
antes da declaração true de retorno, poderá ouvir esse evento no chamadoronFocusChange
setCompoundDrawablesWithIntrinsicBounds(0, 0, clearIcon, 0)
. Você pode passar o ID do ícone da gaveta esquerdo como um novo parâmetro para esta função e colocá-lo na chamada.A biblioteca de suporte do Android tem uma
SearchView
classe que faz exatamente isso. (Não é derivadoEditText
, porém, é necessário usar um emSearchView.OnQueryTextListener
vez de aTextWatcher
)Use em XML assim:
fonte
onde x é:
fonte
Para
drawable resource
você pode usar imagens padrão do Android:http://androiddrawables.com/Menu.html
Por exemplo :
fonte
Se você não quiser usar visualizações personalizadas ou layouts especiais, use o patch 9 para criar o botão (X).
Exemplo: http://postimg.org/image/tssjmt97p/ (não tenho pontos suficientes para postar imagens no StackOverflow)
A interseção dos pixels pretos direito e inferior representa a área de conteúdo. Qualquer coisa fora dessa área é preenchida. Portanto, para detectar que o usuário clicou no x, você pode definir um OnTouchListener da seguinte forma:
De acordo com suas necessidades, esta solução pode funcionar melhor em alguns casos. Eu prefiro manter meu xml menos complicado. Isso também ajuda se você quiser ter um ícone à esquerda, pois você pode simplesmente incluí-lo no patch 9.
fonte
Eu fiz a parte da interface do usuário como abaixo:
edittext_bg.xml
balloon_overlay_close.png
Ocultar / mostrar botão cruzar / limpar:
Manipular itens de pesquisa (ou seja, quando o usuário clica em pesquisa no teclado virtual)
Botão Limpar / Cruzar
fonte
Usar
fonte
Aqui está a biblioteca completa com o widget: https://github.com/opprime/EditTextField
Para usá-lo, você deve adicionar a dependência:
No arquivo layout.xml, você pode jogar com as configurações do widget:
app: clearButtonMode , can tem esses valores: nunca sempre whileEditing, a menos queEditing
app: clearButtonDrawable
Amostra em ação:
fonte
Basta colocar uma cruz fechada como
drawableEnd
no seuEditText
:e use a extensão para manipular o clique (ou use
OnTouchListener
diretamente no seuEditText
):uso de extensão:
fonte
Você pode usar esse trecho com a resposta Jaydip para mais de um botão. basta chamá-lo depois de obter uma referência aos elementos ET e Button. Eu usei o botão vecotr, então você precisa alterar o elemento Button para ImageButton:
fonte
Se você estiver no layout do quadro ou puder criar um layout do quadro, tentei outra abordagem ....
Este é um texto de edição onde eu coloco um ícone de cruz como um drawable à direita e, em seguida, coloco um botão transparente que limpa o texto.
fonte
fonte