[英]Hide soft keyboard in android
我想在Android中單擊EditText
后隱藏鍵盤,但嘗試了以下代碼,但無法正常工作。
mPassword.setInputType(InputType.TYPE_CLASS_NUMBER);
mPassword.requestFocus();
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(mPassword, InputMethodManager.RESULT_HIDDEN);
我還在活動清單中給出了android:windowSoftInputMode="stateHidden"
。 還是我要鍵盤。請告訴我如何隱藏軟鍵盤??
您可以使用以下代碼隱藏軟鍵盤
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mPassword.getWindowToken(), 0);
也,
如果您想在活動開始時隱藏,則將manifest
文件編輯為
<activity android:name="com.your.package.ActivityName"
android:windowSoftInputMode="stateHidden" />
在清單文件中使用以下代碼。
<activity
android:name="YourActivity"
android:configChanges="keyboardHidden"
android:windowSoftInputMode="stateHidden"/>
這樣嘗試
your_edittext.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
InputMethodManager m = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (m != null) {
m.toggleSoftInput(0, InputMethodManager.HIDE_IMPLICIT_ONLY);
your_edittext.clearFocus();
}
}
});
這是可以在任何地方隱藏鍵盤的解決方案。
1在您選擇的活動中創建狀態和將執行關閉操作的方法(基於打開狀態)的偵聽器。
public class MainActivity extends SherlockFragmentActivity {
private boolean mKeyboardOpen = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "onCreate()");
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// add "keyboard open listener"
final View v = findViewById(R.id.pager);
v.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int hRoot = v.getRootView().getHeight();
int hView = v.getHeight();
int heightDiff = hRoot - hView;
// if more than 150 pixels, its probably a keyboard...
mKeyboardOpen = heightDiff > 150;
Log.d(TAG, "hRoot=" + hRoot + ", hView=" + hView + ", mKeyboardOpen=" + mKeyboardOpen);
}
});
}
public void closeSoftKeyboard() {
if (mKeyboardOpen) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
}
}
}
第二次調用((MainActivity) getActivity()).closeSoftKeyboard();
從任何地方,例如您的EditText的OnClickListener()
。
提示:我正在使用ViewPager根視圖(R.id.pager),但您可能應該用視圖根ID替換它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.