編輯:關於Android編程
有時候我們需要在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 無效問題的解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!
單例模式(Singleton)單例模式是對象的創建模式,單例模式能夠確保某個類只有一個單一的實例對象存在,同時能夠自行實例化並將單一的實例提供給外界調用的特點,其在實際項
菜單包括選項菜單(OptionMenu)、上下文菜單(ContextMenu)、子菜單(SubMenu). 創建子菜單(SubMenu)的步驟: 1、重寫Activity
使用實現了單選功能的ListView,不要問為什麼不使用RecyclerView,RecyclerView真的做得不如ListView和GridView完善全面,但是Re
博客參照< < Android開發全程實錄> >的例子 , 以及其他博客, 希望能給學習Android Service的小伙伴一個比較詳細的解釋