Android 軟鍵盤控制彈出(很好使,自己寫的,絕對能用)
最近在做電商類的項目,由於需求的不斷變動,在有關輸如文字框的地方,要求彈出軟鍵盤,如果介面很多的下,則需要些很多代碼,在閒置時候,寫了一個軟鍵盤管理類,很好使,自己寫的,親自試過,這是一個軟鍵盤控制單例模式實現的。
代碼如下:
package com.okdi.ilife.activity.login;import android.app.Activity;import android.content.Context;import android.view.View;import android.view.inputmethod.InputMethodManager;import android.widget.EditText;/** * 類功能描述:軟鍵盤管理介面 * * @author yuyahao * @version 1.0
修改時間:
修改備忘:
*/ public class InputManager { private Context context; public static InputManager inputManager; private InputMethodManager imm; private InputManager(Context context){ this.context = context; // 得到InputMethodManager的執行個體 imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); totleShowSoftInput(); } public static InputManager getInstances(Context context){ if(inputManager == null){ inputManager = new InputManager(context); } return inputManager; } /** * 切換軟鍵盤的顯示與隱藏 */ public void totleShowSoftInput(){ imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); } /** * 判斷軟鍵盤 彈出 */ public void showSoftInput(){ if (!imm.isActive()) { // imm.toggleSoftInput(0, InputMethodManager.RESULT_SHOWN); } } /** *關閉軟鍵盤 *針對於 有一個EdtxtView * @param input_email */ public void hideSoftInput(EditText input_email){ if (imm.isActive()) { // 關閉軟鍵盤,開啟方法相同,這個方法是切換開啟與關閉狀態的 imm.hideSoftInputFromWindow(input_email.getWindowToken(), 0); } } /** * 針對於 有多個EdtxtView * 關閉所有的軟鍵盤 */ public void hideALlSoftInput(){ View view = ((Activity) context).getWindow().peekDecorView(); if (view != null) { imm.hideSoftInputFromWindow(view.getWindowToken(), 0); } } }
有時候我們還需要設定其EditText的輸入類型:
android:inputType=none--輸入一般字元android:inputType=text--輸入一般字元android:inputType=textCapCharacters--輸入一般字元android:inputType=textCapWords--單詞首字母大小android:inputType=textCapSentences--僅第一個字母大小android:inputType=textAutoCorrect--前兩個自動完成android:inputType=textAutoComplete--前兩個自動完成android:inputType=textMultiLine--多行輸入android:inputType=textImeMultiLine--IME多行(不一定支援)android:inputType=textNoSuggestions--不提示android:inputType=textUri--URI格式android:inputType=textEmailAddress--電子郵件地址格式android:inputType=textEmailSubject--郵件主題格式android:inputType=textShortMessage--短訊息格式android:inputType=textLongMessage--長訊息格式android:inputType=textPersonName--人名格式android:inputType=textPostalAddress--郵政格式android:inputType=textPassword--密碼格式android:inputType=textVisiblePassword--密碼可見格式android:inputType=textWebEditText--作為網頁表單的文字格式設定android:inputType=textFilter--文本篩選格式android:inputType=textPhonetic--拼音輸入格式android:inputType=number--數字格式android:inputType=numberSigned--有符號數字格式android:inputType=numberDecimal--可以帶小數點的浮點格式android:inputType=phone--鍵盤android:inputType=datetimeandroid:inputType=date--日期鍵盤android:inputType=time--時間鍵盤
這樣一來,我們就可以對其進行控制了,是不是很好使啊!
老於始終堅信:
沒有做不到的,只有想不到了。