1、XML中给EditText添加属性 android:imeOptions=”actionSearch”
2、代码中设置监听事件
方法一:
mViewSearch.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
//该方法中此处keyCode == event.KEYCODE_SEARCH不起作用,
// 且该方法会被执行两次(所以加event.getAction()==KeyEvent.ACTION_UP)
if (event.getAction() == KeyEvent.ACTION_UP && keyCode == event.KEYCODE_ENTER) {
//执行搜索方法
}
return false;
}
});
方法二:
mViewSearch.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
//执行搜索方法
}
return false;
}
});
补充说明:
方法一监听的是触摸事件,存在down和up两种,所以不加event.getAction() == KeyEvent.ACTION_UP判断的话会被执行两次;建议使用方法二
像回车键改完成、下一步类似,设置属性代码中判断条件即可。