Android EditText将软键盘的回车改为搜索,并监听

需求为:
当用户在界面内点击输入框,弹出键盘,键盘右下角示意为“搜索”按钮
当用户输入内容后,点击搜索按钮将进行关键词搜索
当用户没有输入内容点击搜索按钮,将收起键盘,回到界面(这一步没验证)

1.改变显示(回车 -->搜索)
设置imeOptions属性为actionSearch,这样输入法的确认按钮则会变为搜索按钮
代码设置:

EditText editText = new EditText(this);
//在该Editview获得焦点的时候将“回车”键改为“搜索”
editText.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
editText.setInputType(EditorInfo.TYPE_CLASS_TEXT);
//不然回车【搜索】会换行
editText.setSingleLine(true);

xml配置文件:
EditText属性设置:

android:imeOptions="actionSearch"
android:inputType="text"
android:singleLine="true"    

2.按键监听:点击搜索后事件处理
在activity代码中添加imeOptions的监听
这里有几种事件处理的方式,按需使用,试过第一种可以满足目前的需求
第一种:

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
	@Override
	public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
		if ((actionId == EditorInfo.IME_ACTION_UNSPECIFIED || actionId == EditorInfo.IME_ACTION_SEARCH) && keyEvent != null) {
			//点击搜索要做的操作
			search();
			return true;
		}
		return false;
	}
});

第二种:

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
	@Override
	public boolean onEditorAction(TextView v, int actionId,KeyEvent event)  {                          
		if (actionId==EditorInfo.IME_ACTION_SEND ||(event!=null&&event.getKeyCode()== KeyEvent.KEYCODE_ENTER)) 
		{                
			//点击搜索要做的操作
			search(true);         
			return true;             
		}               
		return false;           
	}       
});

第三种:

editText.setOnKeyListener(new OnKeyListener() {
	@Override
	public boolean onKey(View v, int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_ENTER) {
			// 先隐藏键盘
			((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
			.hideSoftInputFromWindow(SearchUserActivity.this.getCurrentFocus()
			.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
			//进行搜索操作的方法,在该方法中可以加入mEditSearchUser的非空判断
			search();
		}
		return false;
	}
});

搜索功能:

private void search() {
	String searchContext = editText.getText().toString().trim();
	if (TextUtils.isEmpty(searchContext)) {
		TipTools.shortToast(this, "输入框为空,请输入");
	} else {
		// 调用搜索的API方法
		...
	}
}

参考:
Android EditText 软键盘上回车改为搜索
【Android基础】EditText键盘搜索事件设置和监听
Android edittext将软键盘的回车改为搜索

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值