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