我想在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"
。
我还在拿键盘。请告诉我如何隐藏软键盘?
答案 0 :(得分:1)
您可以使用以下代码隐藏软键盘
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mPassword.getWindowToken(), 0);
此外,
如果您想在活动开始时隐藏,请将manifest
文件编辑为
<activity android:name="com.your.package.ActivityName"
android:windowSoftInputMode="stateHidden" />
答案 1 :(得分:0)
在清单文件中使用以下代码。
<activity
android:name="YourActivity"
android:configChanges="keyboardHidden"
android:windowSoftInputMode="stateHidden"/>
答案 2 :(得分:0)
试试这个,
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();
}
}
});
答案 3 :(得分:0)
这是将键盘隐藏在任何地方的解决方案。
1st 在您选择的活动中创建州的监听器和将关闭的方法(基于打开状态)。
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。