1. 程式人生 > >點選螢幕其他地方讓edittext失去焦點並隱藏輸入法的實現方法

點選螢幕其他地方讓edittext失去焦點並隱藏輸入法的實現方法

讓EditText所在的layout或者其他layout獲得焦點。給layout註冊OnTouchListener監聽器。

1、先執行下面這兩個方法:
.setFocusable(true);
.setFocusableInTouchMode(true);

2、再執行.requestFocus() 獲取焦點。

說明:僅僅使用  .requestFocus() 無法獲取焦點,焦點依然在EditTtext上。

3、隱藏輸入法。(set_search_friend為EditTtext。)

InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(getActivity().INPUT_METHOD_SERVICE);
// imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
imm.hideSoftInputFromWindow(set_search_friend.getWindowToken(), 0);


		//rwb:取消EditText焦點,並且隱藏輸入法。
		final View ll_search_friend = curView.findViewById(R.id.ll_search_friend);		
		ll_search_friend.setOnTouchListener(new OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
            	ll_search_friend.setFocusable(true);
            	ll_search_friend.setFocusableInTouchMode(true);
            	ll_search_friend.requestFocus();
                InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(getActivity().INPUT_METHOD_SERVICE); 
//                imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); 
                imm.hideSoftInputFromWindow(set_search_friend.getWindowToken(), 0);    
                return false;
            }
		});

PullToRefreshListView直接呼叫listView.setOnTouchListener無效的,必須listView.getRefreshableView().setOnTouchListener這樣呼叫。

        //rwb:取消EditText焦點,並且隱藏輸入法。
        listView.getRefreshableView().setOnTouchListener(new OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) 
            {
                // TODO Auto-generated method stub
            	logger.d("SearchFriendFragment#listView.onTouch");
            	ll_search_friend.setFocusable(true);
            	ll_search_friend.setFocusableInTouchMode(true);
            	ll_search_friend.requestFocus();
                InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(getActivity().INPUT_METHOD_SERVICE); 
//                imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); 
                imm.hideSoftInputFromWindow(set_search_friend.getWindowToken(), 0);  
                return false;
            }
        });


===================================================

【關閉輸入法的參考方法】

直接關閉輸入法:

1 2 3 4 5 6 7 8 private void closeInputMethod() { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); boolean isOpen = imm.isActive(); if (isOpen) { // imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);//沒有顯示則顯示 imm.hideSoftInputFromWindow(mobile_topup_num.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1、方法一(如果輸入法在視窗上已經顯示,則隱藏,反之則顯示) InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);  2、方法二(view為接受軟鍵盤輸入的檢視,SHOW_FORCED表示強制顯示) InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);  imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //強制隱藏鍵盤  3、呼叫隱藏系統預設的輸入法 ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);  (WidgetSearchActivity是當前的Activity)  4、獲取輸入法開啟的狀態 InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);  boolean isOpen=imm.isActive();//isOpen若返回true,則表示輸入法開啟

 

相關推薦

螢幕其他地方edittext失去焦點隱藏輸入法實現方法

讓EditText所在的layout或者其他layout獲得焦點。給layout註冊OnTouchListener監聽器。 1、先執行下面這兩個方法: .setFocusable(true); .setFocusableInTouchMode(true); 2、再執行.re

android實現螢幕其他地方popupwindow消失

// 解決popupWindow顯示後不消失問題 menuPopupWindow.setBackgroundDrawable(new BitmapDrawable()); menuPopupWindow

//螢幕任何地方鍵盤消失

//點選螢幕任何地方讓鍵盤消失 - (void)setUpForDismissKeyboard { NSNotificationCenter *nc = [NSNotificationCenterdefaultCenter]; UITapGestureRecogni

開啟關閉軟鍵盤,螢幕其他地方關閉軟鍵盤

開啟關閉軟鍵盤,點選螢幕其他地方關閉軟鍵 關閉然鍵盤: public void closeKeyboard() { View rootView = getWindow().getDecorView(); closeKeyboard(rootVi

js使網頁其他地方使顯示框消失

有時候我們需要實現這樣一個效果: 點選圖示或者按鈕會出現一個下拉框或者顯示框,點選圖示或者按鈕顯示框消失,或者需要點選網頁其他任意地方顯示框消失。 點選固定圖示或按鈕顯示框顯示或消失這個jQuery或者js就能很容易實現,這裡說下點選網頁其他任意地方顯示框消失。 jQ

按鈕不觸發輸入框失去焦點事件

例項圖描述:模具號、機臺號輸入方式有兩種:手動輸入(失焦校驗)和掃描錄入(錄入後校驗) <li class="aui-list-item"> <div class="aui-list-item-inner"> <div clas

Android EditText失去焦點避免自動彈出輸入法

如果一進去activity,EditText就獲取焦點,彈出輸入法介面,無疑是很影響美觀的。關於讓EditText失去焦點,網上比較多的做法是新增一個visibility=gone的Textview.然後讓這個textView獲取焦點。不知道是我人品不好還是怎麼的。我這樣做

JavaScript | 阻止預設事件 按鈕後input框不失去焦點

想實現一個登入介面常用的效果:點選按鈕後切換input框的顯示/隱藏密碼 首先想到的是,在按鈕的點選事件裡呼叫focus()使input獲得焦點,程式碼如下: <body> <i

AndroidEditText之外的地方隱藏軟鍵盤同時使EditText失去焦點

1.只是隱藏軟鍵盤: @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_

平移動畫,某個控制元件一個view收縮到右邊螢幕,再展開。

最近做了一個需求。就是點選一個箭頭 ,讓一個view收縮到右邊螢幕,再點選這個View展開,其實看是收縮,其實是平移,讓這個View平移View.getWidth的寬度,同時把這個View的座標也平移過去(不平移座標,點選監聽會還在原來的位置),再讓這個View平移  —View.getW

js或jquery實現某個按鈕或元素顯示div,頁面其他任何地方隱藏div

點選某個元素顯示div,點選頁面其他任何地方隱藏div,可用javascript和jquery兩種方法實現: 一:javascript實現方法技巧 <script> //定義stopPropagation 方法的使用,該方法將停止事件的傳播,阻止它被分派到其他 Document 節點。

js/jq 按鈕顯示div,頁面其他任何地方隱藏div

整個複製可看效果 1. JS效果 <!DOCTYPE html> <html> <head> <meta http-equiv="Content

擊頁面其他地方隱藏彈窗

程序 一次 show auto head 頁面 scrip htm fun <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &

實現擊頁面其他地方隱藏div(vue)

監聽事件 listen function 頁面 比較 als 元素 點擊事件 click 方法一:     通過監聽事件 document.addEventListener(‘click‘,function(e){ if(e.target.

螢幕對顯示物件進行操作:調整位置/旋轉縮放模式/拖動

1.載入資源 2.將資源新增到顯示列表並設定錨點 ////////////////////////////////*調整位置關鍵程式碼*/ this.stage.addEventListener(egret.TouchEvent.TOUCH_BEGIN, (e: egret.TouchEvent) =&

android螢幕隱藏小鍵盤

原文: android點選螢幕隱藏小鍵盤 fragment 下隱藏點選空白處隱藏小鍵盤   view.setOnTouchListener(new OnTouchListener() {   @Override   public boolean onTouch(View v, Moti

monkeyrunner入門之滑動螢幕(三)

細節都寫在裡面了哦,仔細看。。 device.touch裡面的數字是手機螢幕的座標,手機螢幕的座標這樣得知: 開啟設定–系統—開發者選項–指標座標 #device.drag(X,Y,D,S) #X 開始座標 #Y 結束座標 #D 拖動持續時間(以秒為單位),預設1.0秒 #S 插值點時要

Swift 3 螢幕任意位置隱藏鍵盤

func hideKeyboardWhenTappedAround() { let tap: UITapGestureRecognizer = UITapGestureRecognize

Unity 螢幕與UGUI的區分

UGUI - 判斷是否點選在UI 上 Bug,IsPointerOverGameObject()在移動端檢測失敗 UGUI 提供了一個檢測是否點選在UI上的方法 EventSystem.current.

Android 4.0設定Dialog螢幕不消失

業務的需求是變化莫測的,最近就遇到一個需求是——使用者只有點選Dialog的取消按鈕才會消失,點選螢幕的時候不消失。Android ICS對UI做了很大的變動,系統提倡使用DialogFragment,但是系統預設的操作習慣是點選螢幕Dialog會自動消失。 為了實現業務的