EditText 设置 imeOptions 无效问题
有时候我们需要在EditText 输出完之后 需要在键盘出现 右下角变成“GO”或“前往 搜索时;通常我们需要设置Android:imeOptions属性。android:imeOptions的值有actionGo、 actionSend 、actionSearch、actionDone等
但是今天我发现设置了无效 那是因为我设置了 android:maxLines="1"
解决方法 就是去掉 android:maxLines="1" 设置 android:singleLine="true" 有必要还需要 inputType设置为text
网上有一种监听点击回车 搜索的写法 这种写法 会执行两次 解决方法是
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId==EditorInfo.IME_ACTION_SEND ||(event!=null&&event.getKeyCode()== KeyEvent.KEYCODE_ENTER))
{
//do something;
return true;
}
return false;
}
});
解决方法是 1 (ps 这种方法我感觉写法有点多余)
- public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
- //以下方法防止两次发送请求 再判断动作
- if (actionId == EditorInfo.IME_ACTION_SEND ||
- (event != null && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
- switch (event.getAction()) {
- case KeyEvent.ACTION_UP:
- //发送请求
- String keyWord = et_search.getText().toString().trim();
- if (null == keyWord)
- keyWord = "";
- dismisspopup();
- LogUtils.d("向服务器发送搜索请求:" + keyWord);
- //发起查询
- searchByKeyWord(keyWord);
- hideSoftInput();
- return true;
- default:
- return true;
- }
- }
- return false;
- }
- EditText editText = (EditText) contentView.findViewById(R.id.editText);
- editText.setOnEditorActionListener(new OnEditorActionListener() {
- @Override
- public boolean onEditorAction(TextView v, int actionId,
- KeyEvent event) {
- if (actionId == EditorInfo.IME_ACTION_SEARCH) {
- Toast.makeText(getActivity(), "1111111",Toast.LENGTH_SHORT).show();
- }
- return false;
- }
- });
更多相关文章
- Android进阶之路之gravity和layout_gravity
- Android(安卓)SDK Content loader has encountered a problem
- Android(安卓)7.0新特性
- android Camera摄像头竖屏显示
- Android开发ContentProvider
- android:configChanges属性
- android:padding和android:margin的区别
- 直接从 Google Play 下载 Android(安卓)应用最简单的方法
- Android:TextView属性大全