Eu tenho um layout que contém algumas visualizações como esta:
<LinearLayout>
<TextView...>
<TextView...>
<ImageView ...>
<EditText...>
<Button...>
</linearLayout>
Como posso definir o foco (exibir o teclado) no meu EditText
programaticamente?
Eu tentei isso e só funciona quando inicio o meu Activity
normalmente, mas quando inicio em um TabHost
, não funciona.
txtSearch.setFocusableInTouchMode(true);
txtSearch.setFocusable(true);
txtSearch.requestFocus();
android
focus
android-edittext
Houcine
fonte
fonte
Respostas:
Tente o seguinte:
http://developer.android.com/reference/android/view/View.html#requestFocus ()
fonte
usar:
fonte
View
subclasse)imm.showSoftInput()
não funciona.Isso funcionou para mim, graças a ungalcrys
Mostrar teclado:
Ocultar teclado:
fonte
showSoftInput
não estava funcionando para mim.Imaginei que precisava definir o modo de entrada:
android:windowSoftInputMode="stateVisible"
(aqui no componente Activity no manifesto)Espero que esta ajuda!
fonte
fonte
tb.post({ showKeyboard(tb) })
). Observe que precisamos de uma visão EditText (tb
), não uma visão fragmentada.Aqui está como uma extensão kotlin para mostrar e ocultar o teclado virtual pode ser feita:
Então você pode fazer isso:
fonte
Eu recomendo o uso de um LifecycleObserver que faz parte do Manipulando Ciclos de Vida com Componentes Reconhecidos pelo Ciclo de Vida do Android Jetpack .
Quero abrir e fechar o teclado quando o fragmento / atividade aparecer. Primeiro, defina duas funções de extensão para o EditText. Você pode colocá-los em qualquer lugar do seu projeto:
Em seguida, defina um LifecycleObserver que abra e feche o teclado quando a Atividade / Fragmento atingir
onResume()
ouonPause
:Em seguida, adicione a seguinte linha a qualquer um dos seus Fragmentos / Atividades. Você pode reutilizar o LifecycleObserver a qualquer momento. Por exemplo, para um fragmento:
fonte
Aqui está a classe KeyboardHelper para ocultar e mostrar o teclado
fonte
Primeira maneira :
Segunda maneira :
Em manifesto:
Em código:
fonte
Tentei de várias maneiras e não está funcionando, não tenho certeza porque estou usando a transição compartilhada de fragmento para atividade que contém o texto de edição.
Btw meu edittext também é envolto em LinearLayout.
Eu adicionei um pequeno atraso para solicitar o foco e o código abaixo funcionou para mim: (Kotlin)
showKeyboard ()
fonte
fonte
Não consegui que nenhuma dessas respostas funcionasse por conta própria. A solução para mim foi combiná-los:
Não sei por que isso foi necessário para mim - de acordo com os documentos, parece que qualquer um dos métodos deveria ter funcionado por conta própria.
fonte