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(newTextView.OnEditorActionListener(){ publicbooleanonEditorAction(TextViewv,intactionId,KeyEventevent){ if(actionId==EditorInfo.IME_ACTION_SEND||(event!=null&&event.getKeyCode()==KeyEvent.KEYCODE_ENTER)) { //dosomething; returntrue; } returnfalse; } });
解决方法是1 (ps这种方法我感觉写法有点多余)
publicbooleanonEditorAction(TextViewv,intactionId,KeyEventevent){ //以下方法防止两次发送请求再判断动作 if(actionId==EditorInfo.IME_ACTION_SEND|| (event!=null&&event.getKeyCode()==KeyEvent.KEYCODE_ENTER)){ switch(event.getAction()){ caseKeyEvent.ACTION_UP: //发送请求 StringkeyWord=et_search.getText().toString().trim(); if(null==keyWord) keyWord=""; dismisspopup(); LogUtils.d("向服务器发送搜索请求:"+keyWord); //发起查询 searchByKeyWord(keyWord); hideSoftInput(); returntrue; default: returntrue; } } returnfalse; }
还有一种写法 直接监听actionId等于搜需要的时间即可
EditTexteditText=(EditText)contentView.findViewById(R.id.editText); editText.setOnEditorActionListener(newOnEditorActionListener(){ @Override publicbooleanonEditorAction(TextViewv,intactionId, KeyEventevent){ if(actionId==EditorInfo.IME_ACTION_SEARCH){ Toast.makeText(getActivity(),"1111111",Toast.LENGTH_SHORT).show(); } returnfalse; } });
以上所述是小编给大家介绍的Android中EditText设置imeOptions无效问题的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!