EditText
のフォーカスに関連するイベントを誰かが私に提案できますか?私のアプリケーションにはEditText
が含まれており、その中にURLを受け入れます。
私の問題は、ユーザーがフィールドにURLを入力してクリックイベントなしでさらに移動した後、つまりフォーカスがEditText
から移動するときに、入力されたUrlを検出してサーバーに移動する必要があるということです。
Json Parsingを使用して返信を受け取った場合、より便利になります。
フォーカスリスナーの例を次に示します。
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のオブジェクトを宣言します。
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();
}
}
});
kotlinでは、次のようになります。
editText.setOnFocusChangeListener { view, hasFocus ->
if (hasFocus) toast("focused") else toast("focuse lose")
}