任何人都可以向我推荐任何与EditText
焦点相关的事件吗?
我的应用程序包含EditText
,其中包含一个URL。
现在我的问题是,用户将在字段中输入URL并进一步移动,没有任何点击事件,即当焦点将从EditText
移动时,它应该检测到输入网址并转到服务器。
如果我使用Json Parsing得到回复,那么它会更方便。
答案 0 :(得分:480)
这是焦点听众的例子。
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();
}
}
});
答案 1 :(得分:10)
在类顶部声明EditText的对象:
EditText myEditText;
在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();
}
}
});
工作正常。
答案 2 :(得分:3)
对于我们这些上述有效解决方案无效的人来说,还有另一种解决方法
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();
}
}
});
答案 3 :(得分:0)
在科特林时,它会像这样:
editText.setOnFocusChangeListener { view, hasFocus ->
if (hasFocus) toast("focused") else toast("focuse lose")
}