有人能为我建议与EditText
焦点相关的事件吗?
我的应用程序包含一个EditText
,它接受其中的URL。
现在我的问题是,在用户输入字段中的URL并进一步移动之后,没有任何点击事件,即焦点将从EditText
移开时,它应检测已输入的URL并转到服务器。
如果我使用Json解析获取回复,那将更方便。
有人能为我建议与EditText
焦点相关的事件吗?
我的应用程序包含一个EditText
,它接受其中的URL。
现在我的问题是,在用户输入字段中的URL并进一步移动之后,没有任何点击事件,即焦点将从EditText
移开时,它应检测已输入的URL并转到服务器。
如果我使用Json解析获取回复,那将更方便。
以下是焦点监听器的示例。
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();
}
}
});
在 Kotlin 中,它会看起来像这样:
editText.setOnFocusChangeListener { _, hasFocus ->
if (hasFocus) {
toast("focused")
} else {
toast("focuse lose")
}
}
在类顶部声明EditText对象:
EditText myEditText;
在onCreate函数中查找EditText并设置EditText的setOnFocusChangeListener:
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();
}
}
});