处理 EditText 焦点的事件

有没有人能给我一些关于 EditText焦点的建议? 我的应用程序包含一个 EditText,它接受其中的 URL。

现在我的问题是,当用户在字段中输入 URL 并进一步移动时,没有任何单击事件,也就是说,当焦点从 EditText移动时,它应该检测到输入的 URL 并进入服务器。

如果我使用 Json Parsing 得到答复,那么它将更加方便。

199199 次浏览

下面是焦点侦听器示例。

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();
}
}
});

对于我们这些谁上述有效的解决方案没有工作,有另一个工作在这里

 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();


}
}
});
  1. 在类的顶部声明 EditText 对象:

    EditText myEditText;
    
  2. 在 onCreate 函数和 EditText 的 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();
    }
    
    
    }
    });
    

很好用。

在 Kotlin,情况会是这样的:

editText.setOnFocusChangeListener { _, hasFocus ->
if (hasFocus) {
toast("focused")
} else {
toast("focuse lose")
}
}