我想知道在 EditText 输入文本后隐藏键盘的最佳方法。
1) setonfocuschangelistener :是否仅在按下完成按钮或焦点从一个 EditText 更改为另一个时触发此侦听器?当我使用这个方法时,我无法隐藏键盘。
2)setOnTouchListener:当我使用这个时,我可以隐藏键盘,但我怀疑这可能有问题。在本例中,我将触摸侦听器添加到根 LinearLayout。我使用过以下代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
txtUserName = (EditText)findViewById(R.id.txtUserName);
btnLogin = (Button)findViewById(R.id.btnLogin);
layoutView = (LinearLayout)findViewById(R.id.li);
layoutView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(txtUserName
.getWindowToken(), 0);
return true;
}
});
}
在主 LinearLayout 中,我使用了另外两个 LinearLayout。我在上面的代码中遇到的问题是,在某些时候,当我按下时,键盘不会隐藏。
我的疑问是,我只添加根布局的触摸监听器,而不是为其他内部布局或其他控件(TextView)提供触摸监听器。当我触摸其他控件或 TextView 周围的某些点(即内部布局)时,键盘不会隐藏。
这意味着我需要将 touchListener 添加到根布局内的所有布局或控件吗?
对于这种情况如何才能更好的处理呢?
您可以使用此代码
InputMethodManager imm =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mEditView.getWindowToken(), 0);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)