당신은 edittexts 그들를 벗어난 클릭 한 후 초점을 잃게하기 위해 사용자의 작업에 일부 코드를 추가 할 수 있습니다.
public static void setupForKeyboardDismiss(View view, final Activity activity) {
//Set up touch listener for non-text box views to hide keyboard.
if(!(view instanceof EditText)) {
view.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
hideSoftKeyboard(activity);
return false;
}
});
}
//If a layout container, iterate over children and seed recursion.
if (view instanceof ViewGroup) {
for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
View innerView = ((ViewGroup) view).getChildAt(i);
setupForKeyboardDismiss(innerView, activity);
}
}
}
public static void hideSoftKeyboard(Activity activity) {
try {
InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
}catch (Exception e){
e.printStackTrace();
}
}
그런 다음 당신은 실제로 당신이 (당신의 활동의 된 setContentView 후)이 호출하여 모든 활동에 적용 할 수 있습니다, 그 edittexts가 포함 된보기를 통과 setupForKeyboardDismiss
메소드를 호출 할 수 있습니다 :
여기 은 예입니다
setupForKeyboardDismiss((ViewGroup) activity.findViewById(android.R.id.content), activity);
@ whd.nsr의 대답은 정말 도움이되었습니다. 또한 afterTextChanged() 메서드를 사용하여 포커스를 지우는 방법으로 텍스트 워처를 사용하는 다른 방법을 발견했습니다. 처음에 edittext를 클릭하고 아무 것도 입력하지 않으면 청취자를 트리거 할 수 없었습니다. –