edittext 监听无效_Android中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;

}

还有一种写法   直接监听actionId等于搜需要的时间即可

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中EditText 设置 imeOptions 无效问题的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

本文标题: Android中EditText 设置 imeOptions 无效问题的解决方法

本文地址: http://www.cppcns.com/ruanjian/android/173401.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值