Android下响应输入法搜索按钮

 

转载自:http://article.fynas.com/android%E4%B8%8B%E6%90%9C%E7%8B%97%E8%BE%93%E5%85%A5%E6%B3%95%E6%90%9C%E7%B4%A2%E6%8C%89%E9%92%AE%E6%97%A0%E6%95%88

 

 

在很多android应用中都有搜索框,当它获得焦点后,输入法会自动弹出,在输入关键词后可以点击应用给设计的搜索按钮,也可以点击输入法中的“搜索”键(一般在输入法的右下角)进行搜索,这样用户使用起来会更加的方便。实现这个功能其实很简单,只需要捕获用户的输入就行了,一般代码如下:

 

searchAutoCompleteText.setOnEditorActionListener(new OnEditorActionListener() {

	@Override
	public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                // 输入法中点击搜索
		if (actionId == EditorInfo.IME_ACTION_SEARCH) {
                        //这里调用搜索方法
			return true;
		}
		return false;
	}
});

 

但是这对于国内高市占率的搜狗输入法却无效。调试一下很容易发现对于搜狗输入法,点击“搜索”时actionId为0,对应EditorInfo.IME_ACTION_UNSPECIFIED,而不是EditorInfo.IME_ACTION_SEARCH代表的3。

因此改一下上面的if语句,加上一个条件即可:

 

//一般输入法或搜狗输入法点击搜索按键
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_UNSPECIFIED) {
        //这里调用搜索方法
	return true;
}

 

你可能感兴趣的:(android)