有時候我們需要在EditText 輸出完之后 需要在鍵盤出現(xiàn) 右下角變成“Go”或“前往 搜索時;通常我們需要設(shè)置Android:imeOptions屬性。Android:imeOptions的值有actionGo、 actionSend 、actionSearch、actionDone等
但是今天我發(fā)現(xiàn)設(shè)置了無效 那是因?yàn)槲以O(shè)置了 android:maxLines="1"
解決方法 就是去掉 android:maxLines="1" 設(shè)置 android:singleLine="true" 有必要還需要 inputType設(shè)置為text
網(wǎng)上有一種監(jiān)聽點(diǎn)擊回車 搜索的寫法 這種寫法 會執(zhí)行兩次 解決方法是
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 這種方法我感覺寫法有點(diǎn)多余)
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { //以下方法防止兩次發(fā)送請求 再判斷動作 if (actionId == EditorInfo.IME_ACTION_SEND || (event != null && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) { switch (event.getAction()) { case KeyEvent.ACTION_UP: //發(fā)送請求 String keyWord = et_search.getText().toString().trim(); if (null == keyWord) keyWord = ""; dismisspopup(); LogUtils.d("向服務(wù)器發(fā)送搜索請求:" + keyWord); //發(fā)起查詢 searchByKeyWord(keyWord); hideSoftInput(); return true; default: return true; } } return false; } 還有一種寫法 直接監(jiān)聽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 設(shè)置 imeOptions 無效問題的解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選