Android软键盘的一些控制
2014-01-10 09:24
302 查看
转载自:http://www.2cto.com/kf/201201/117364.html
"EditText + Button" 形成一个"输入+按键响应" 的案例在android编程中是最常见不过的了。
但还有一些细节需要注意:
在EditText输入后,点击Button进行请求,软键盘应该自行消失
在EditText输入后,不点击Button进行请求,而是直接点击软键盘上的"回车",那么也应该能够正常响应请求
针对问题1,可以在响应Button的onClick事件中,主动将软键盘隐藏,加入如下代码即可
[java]
InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0);
针对问题2,可以在EditText的api doc中找到答案
void android.widget.TextView.setOnEditorActionListener(OnEditorActionListener l)
Set a special listener to be called when an action is performed on the text view. This will be called when the enter key is pressed, or when an action supplied to the IME is
selected by the user. Setting this means that the normal hard key event will not insert a newline into the text view, even if it is multi-line; holding down the ALT modifier will, however, allow the user to insert a newline character.
Parameters:
l
因此,只需要给EditText设置一个onEditorActionListener就好了,简单示例如下
[java] www.2cto.com
// The action listener for the EditText widget, to listen for the return key
private TextView.OnEditorActionListener mWriteListener =
new TextView.OnEditorActionListener() {
public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {
// If the action is a key-up event on the return key, send the message
if (actionId == EditorInfo.IME_NULL && event.getAction() == KeyEvent.ACTION_UP) {
String message = view.getText().toString();
sendMessage(message);
}
if(D) Log.i(TAG, "END onEditorAction");
return true;
}
};
备注一下:TextView.OnEditorActionListener接口方法onEditorAction方法的第二个参数actionId,其可能的值在EditorInfo的说明中能够找到。列举如下
"EditText + Button" 形成一个"输入+按键响应" 的案例在android编程中是最常见不过的了。
但还有一些细节需要注意:
在EditText输入后,点击Button进行请求,软键盘应该自行消失
在EditText输入后,不点击Button进行请求,而是直接点击软键盘上的"回车",那么也应该能够正常响应请求
针对问题1,可以在响应Button的onClick事件中,主动将软键盘隐藏,加入如下代码即可
[java]
InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0);
针对问题2,可以在EditText的api doc中找到答案
void android.widget.TextView.setOnEditorActionListener(OnEditorActionListener l)
Set a special listener to be called when an action is performed on the text view. This will be called when the enter key is pressed, or when an action supplied to the IME is
selected by the user. Setting this means that the normal hard key event will not insert a newline into the text view, even if it is multi-line; holding down the ALT modifier will, however, allow the user to insert a newline character.
Parameters:
l
因此,只需要给EditText设置一个onEditorActionListener就好了,简单示例如下
[java] www.2cto.com
// The action listener for the EditText widget, to listen for the return key
private TextView.OnEditorActionListener mWriteListener =
new TextView.OnEditorActionListener() {
public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {
// If the action is a key-up event on the return key, send the message
if (actionId == EditorInfo.IME_NULL && event.getAction() == KeyEvent.ACTION_UP) {
String message = view.getText().toString();
sendMessage(message);
}
if(D) Log.i(TAG, "END onEditorAction");
return true;
}
};
备注一下:TextView.OnEditorActionListener接口方法onEditorAction方法的第二个参数actionId,其可能的值在EditorInfo的说明中能够找到。列举如下
IME_ACTION_DONE |
IME_ACTION_GO |
IME_ACTION_NEXT |
IME_ACTION_NONE |
IME_ACTION_PREVIOUS |
IME_ACTION_SEARCH |
IME_ACTION_SEND |
IME_ACTION_UNSPECIFIED |
相关文章推荐
- android软键盘的一些控制 转来的,格式有点乱
- android软键盘的一些控制
- android软键盘的一些控制
- Android软键盘的一些控制
- android软键盘的一些控制
- Android软键盘的一些控制
- android软键盘的一些控制
- android软键盘的一些控制
- android软键盘的一些控制
- android软键盘的一些控制
- android软键盘的一些控制
- Android虚拟软键盘弹出时的界面控制方法
- Android软键盘的一些注意事项
- Android InputMethodManager 控制软键盘
- Android控制软键盘拉起
- Android简单的动态控制软键盘的显隐
- 【移动开发】 Android隐藏输入法软键盘的一些说明
- android输入法属性使用,软键盘隐藏、显示状态控制大揭秘
- 【移动开发】 Android隐藏输入法软键盘的一些说明
- Android控制软键盘的弹出和隐藏