在android中隐藏虚拟键盘?

时间:2010-11-18 13:55:12

标签: android

您好我不想显示虚拟键盘,即使用户触摸editText字段。

4 个答案:

答案 0 :(得分:6)

您是否尝试将android:configChanges =“keyboard | keyboardHidden”添加到您的活动中?

e.g:

<activity android:name=".MyApp" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden">

不确定它是否适用于屏幕键盘以及物理键盘。

你也可以使用InputMethodManager搞乱屏幕键盘,例如隐藏它你可以使用:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mCurretnView.getWindowToken(), 0);

答案 1 :(得分:3)

this question中使用:

EditText edtView=(EditText)findViewById(R.id.editTextConvertValue);
edtView.setInputType(0);

答案 2 :(得分:1)

InputMethodManager inputMethodManager = (InputMethodManager) currentActivity.getSystemService(Context.INPUT_METHOD_SERVICE);
if (isShow) {
    if (currentActivity.getCurrentFocus() == null) {
        inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
    } else {
        inputMethodManager.showSoftInput(currentActivity.getCurrentFocus(), InputMethodManager.SHOW_FORCED);    
    }

} else {
    if (currentActivity.getCurrentFocus() == null) {
        inputMethodManager.toggleSoftInput(InputMethodManager.HIDE_NOT_ALWAYS, 0);
    } else {
        inputMethodManager.hideSoftInputFromInputMethod(currentActivity.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);    
    }

}

答案 3 :(得分:0)

试试这个

@Override
public boolean dispatchTouchEvent(MotionEvent event) {
    boolean ret = super.dispatchTouchEvent(event);
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(mCurretnView.getWindowToken(), 0);  
    return ret;
}

editText.setOnTouchListener(new View.OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(mCurretnView.getWindowToken(), 0);  
        return false;
    }
});