禁用软键盘

Disabling the soft keyboard

我需要禁用软键盘,只启用硬键盘,所以我创建了这种edittext,效果很好,但在某些htc手机上这种类型的edittext禁用了多行语句(不知道是怎么回事有效)。

public class NoImeEditText extends EditText {
    public NoImeEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    @Override
    public boolean onCheckIsTextEditor() {
        return false;
    }
}

我使用这种代码的另一种方式,但它不起作用。

    keyboardText.setShowSoftInputOnFocus(false);


    InputMethodManager imm = (InputMethodManager)getMainActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
    if (imm != null)
        imm.hideSoftInputFromWindow(keyboardText.getWindowToken(), 0); 

这可能有效,

   @Override
    protected void onCreate(Bundle savedInstanceState) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}

这将隐藏软键盘。