EditText의 포커스를 처리하는 이벤트 URL을 입력하고 추가로 이동 한 후,

누구든지의 초점과 관련된 이벤트를 제안 할 수 있습니까 EditText? 내 응용 프로그램에는 EditTextURL이 허용되는가 포함되어 있습니다 .

이제 내 문제는 사용자가 클릭 이벤트없이 필드에 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();
        }
    }
});


답변

  1. 클래스 위에 EditText 객체를 선언하십시오.

     EditText myEditText;
  2. 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();
                    }
    
                }
            });

잘 작동합니다.


답변

kotlin에있을 때 다음과 같이 보일 것입니다 :

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


답변

위의 유효한 솔루션으로 작동하지 않은 사람들에게는 여기에 다른 해결 방법이 있습니다.

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

            }
        }
    });


답변