如何实现点击屏幕其他地方让edittext失去焦点
2个回答
展开全部
方法就是:让EditText所在的layout获得焦点。
给layout注册OnTouchListener监听器
直接使用 .requestFocus() 无法获取焦点,焦点依然在EditTtext上
先调用下面这两个方法:
.setFocusable(true);
.setFocusableInTouchMode(true);
再调用 .requestFocus() 就可获取焦点
relative.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
relative.setFocusable(true);
relative.setFocusableInTouchMode(true);
relative.requestFocus();
return false;
}
});
给layout注册OnTouchListener监听器
直接使用 .requestFocus() 无法获取焦点,焦点依然在EditTtext上
先调用下面这两个方法:
.setFocusable(true);
.setFocusableInTouchMode(true);
再调用 .requestFocus() 就可获取焦点
relative.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
relative.setFocusable(true);
relative.setFocusableInTouchMode(true);
relative.requestFocus();
return false;
}
});
2016-10-29 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
复写下面这个方法:
@Override
public boolean onTouchEvent(MotionEvent event) {
InputMethodManager imm = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE);
//login_auto_account.setCursorVisible(false);
imm.hideSoftInputFromWindow(login_auto_account.getWindowToken(), 0);
return super.onTouchEvent(event);
}
其中login_auto_account是EditText或者是AutoCompletTextView的属性
@Override
public boolean onTouchEvent(MotionEvent event) {
InputMethodManager imm = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE);
//login_auto_account.setCursorVisible(false);
imm.hideSoftInputFromWindow(login_auto_account.getWindowToken(), 0);
return super.onTouchEvent(event);
}
其中login_auto_account是EditText或者是AutoCompletTextView的属性
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询