EditText escuta retorno de carro
Ao usar o EditText, às vezes precisamos monitorar o retorno de carro da entrada para realizar algumas operações. Ou você precisa alterar o retorno de carro para "Pesquisar", "Enviar" ou "Concluir" etc.
EditText nos fornece um atributo imeOptions para substituir a aparência da tecla Enter no teclado virtual. Por exemplo, actionGo mudará a aparência para "Go". Precisa ser definido ao mesmo tempo android:inputType="text"
.
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionGo"
android:inputType="text" />
Vários atributos comumente usados e aparência de texto substituída:
Atributos | ilustrar | Corresponde a variáveis estáticas |
---|---|---|
ação não especificada | não especificado | EditorInfo.IME_ACTION_UNSPECIFIED |
açãoNenhum | Ação | EditorInfo.IME_ACTION_NONE |
açãoGo | Vá para | EditorInfo.IME_ACTION_GO |
açãoPesquisa | procurar | EditorInfo.IME_ACTION_SEARCH |
açãoEnviar | enviar | EditorInfo.IME_ACTION_SEND |
açãoPróxima | Próximo item | EditorInfo.IME_ACTION_NEXT |
ação concluída | Terminar | EditorInfo.IME_ACTION_DONE |
O método de configuração pode ser definido no arquivo de layout android:imeOptions="actionNext"
ou no códigomUserEdit.setImeOptions(EditorInfo.IME_ACTION_NEXT);
Em seguida, defina o evento de escuta para a tecla EntersetOnEditorActionListener
et1.setOnEditorActionListener(mOnEditorActionListener);
// ......
private TextView.OnEditorActionListener mOnEditorActionListener = new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
Log.d(TAG, "actionId: " + actionId);
Log.d(TAG, "event: " + event);
return false;
}
};
Se onEditorAction retornar verdadeiro, significa que este evento foi consumido.
O actionId acima corresponde à android.view.inputmethod.EditorInfo
constante em .
public static final int IME_ACTION_UNSPECIFIED = 0x00000000;
public static final int IME_ACTION_NONE = 0x00000001;
public static final int IME_ACTION_GO = 0x00000002;
public static final int IME_ACTION_SEARCH = 0x00000003;
public static final int IME_ACTION_SEND = 0x00000004;
public static final int IME_ACTION_NEXT = 0x00000005;
public static final int IME_ACTION_DONE = 0x00000006;
public static final int IME_ACTION_PREVIOUS = 0x00000007;
Movimento e seleção do cursor EditText
Apresenta principalmente o método setSelection.
setSelection tem:
- setSelection(int start, int stop) intervalo de seleção
- setSelection(int index) move o cursor para a posição especificada
Exemplo: suponha que exista EditText e o nome da variável seja mEt1 .
- Mova o cursor para a frente mEt1.setSelection(0);mEt1.setSelection(mEt1.getText().length());mEt1.setSelection(mEt1.getSelectionEnd() + 1);mEt1.setSelection(mEt1.getSelectionEnd() - 1); Deve-se notar que se o índice recebido exceder a faixa de texto, um relatório será reportado.
java.lang.IndexOutOfBoundsException
Portanto, em projetos reais, é necessário determinar se a posição recebida está dentro da faixa de comprimento do conteúdo existente de Editar texto. - Mova o cursor para o final
- Mova o cursor uma posição para a direita
- Mova o cursor uma posição para a esquerda
- Selecione todas as entradas atuais textmEt1.setSelection(0, mEt1.getText().length());
Monitore o conteúdo de entrada
Limitar dinamicamente o comprimento da entrada no código
Usando TextWatcher
mQueryEt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
// 如果EditText中的数据不为空,且长度大于指定的最大长度
if (!TextUtils.isEmpty(s) && s.length() > 15) {
// 删除指定长度之后的数据
s.delete(15, s.length() - 1);
}
}
});
Compartilhe uma última vez
[Produzido pela equipe técnica da Tencent] Começando a usar o Android do zero até dominá-lo, tutorial de instalação do Android Studio + conjunto completo de tutoriais básicos do Android
Tutorial introdutório à programação Android
Noções básicas da linguagem Java, desde a entrada até a familiaridade
Noções básicas da linguagem Kotlin, desde a entrada até a familiaridade
Pilha de tecnologia Android desde a entrada até a familiaridade
Aprendizagem abrangente no Android Jetpack
Para iniciantes, pode ser difícil instalar o Android Studio. Você pode assistir ao vídeo a seguir para aprender como instalar e executá-lo passo a passo.
Tutorial de instalação do Android Studio
Com o estágio de aprendizado Java, é recomendável focar no aprendizado por vídeo neste estágio e complementá-lo com verificação de livros e preenchimento de lacunas. Se você se concentra principalmente em livros, pode digitar o código com base nas explicações do livro, complementado por vídeos didáticos para verificar omissões e preencher lacunas. Se você encontrar problemas, você pode ir ao Baidu. Geralmente, muitas pessoas encontrarão problemas básicos e darão respostas melhores.
Você precisa dominar pontos de conhecimento básico, como usar os quatro componentes principais, como criar um serviço, como fazer o layout, visualização personalizada simples, animação, comunicação em rede e outras tecnologias comuns.
Um conjunto completo de tutoriais baseados em zero foi preparado para você. Se precisar, você pode adicionar o código QR abaixo para obtê-lo gratuitamente.
Um conjunto completo de tutoriais básicos do Android