Событие для обработки фокуса EditText
Может ли кто-нибудь предложить мне любое событие, связанное с фокусом EditText
? Мое приложение содержит EditText
, который принимает URL-адрес в нем.
Теперь моя проблема заключается в том, что после того, как пользователь введет URL-адрес в поле и перейдет дальше, без какого-либо события щелчка, то есть когда фокус будет перемещаться из EditText
, он должен обнаружить введенный URL и отправляется на сервер.
Если я получу ответ с помощью Json Parsing, то это будет более удобно.
3 ответа
Вот пример фокуса слушателя.
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if (hasFocus) {
Toast.makeText(getApplicationContext(), "Got the focus", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Lost the focus", Toast.LENGTH_LONG).show();
}
}
});
Когда в котлине это будет выглядеть так:
editText.setOnFocusChangeListener { view, hasFocus ->
if (hasFocus) toast("focused") else toast("focuse lose")
}
Объявите объект EditText поверх класса:
EditText myEditText;
Найдите EditText в функции onCreate и установите setOnFocusChangeListener для EditText:
myEditText = findViewById(R.id.yourEditTextNameInxml); myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View view, boolean hasFocus) { if (!hasFocus) { Toast.makeText(this, "Focus Lose", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(this, "Get Focus", Toast.LENGTH_SHORT).show(); } } });
Работает нормально.
Для тех из нас, кто не справился с вышеуказанным верным решением, здесь есть еще один обходной путь
searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean isFocused) {
if(!isFocused)
{
Toast.makeText(MainActivity.this,"not focused",Toast.LENGTH_SHORT).show();
}
}
});