天天看點

android如何調用顯示和隐藏系統預設的輸入法

android如何調用顯示和隐藏系統預設的輸入法

1.調用顯示系統預設的輸入法

方法一、

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

imm.showSoftInput(m_receiverView(接受軟鍵盤輸入的視圖(View)),InputMethodManager.SHOW_FORCED(提供目前操作的标記,SHOW_FORCED表示強制顯示));

方法二、

InputMethodManager m=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

m.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); (這個方法可以實作輸入法在視窗上切換顯示,如果輸入法在視窗上已經顯示,則隐藏,如果隐藏,則顯示輸入法到視窗上)

2.調用隐藏系統預設的輸入法

((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); (WidgetSearchActivity是目前的Activity)

3.擷取輸入法打開的狀态

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

boolean isOpen=imm.isActive();

isOpen若傳回true,則表示輸入法打開

1、//隐藏軟鍵盤  

((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);  

2、//顯示軟鍵盤,控件ID可以是EditText,TextView  

((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).showSoftInput(控件ID, 0);  

3、不自動彈出鍵盤:

帶有EditText控件的在第一次顯示的時候會自動獲得focus,并彈出鍵盤,如果不想自動彈出鍵盤,有兩種方法:

方法一:在mainfest檔案中把對應的activity設定

android:windowSoftInputMode="stateHidden" 或者android:windowSoftInputMode="stateUnchanged"。

方法二:可以在布局中放一個隐藏的TextView,然後在onCreate的時候requsetFocus。

注意TextView不要設定Visiable=gone,否則會失效

,可以在布局中放一個隐藏的TextView,然後在onCreate的時候requsetFocus。

<TextView

       android:id="@+id/text_notuse"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:focusable="true"

android:focusableInTouchMode="true"  />

TextView textView = (TextView)findViewById(R.id.text_notuse);

textView.requestFocus();

s/41911309

繼續閱讀