3

如何关闭 IME 功能EditText

或者:如何避免显示 IME 键盘?

我有一个布局,我的特殊键盘位于下方,EditText因此无需显示 IME。请理解,我无法将我的键盘实现为 IME,因为它是专门针对此的EditText,并且在任何其他上下文中使用它只会导致问题。

我试着用

getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

onCreate()活动中,但在这种情况下似乎没有任何作用。

4

3 回答 3

6

认为我找到了一种方法......子类EditText并覆盖onCheckIsTextEditor()以返回false:

public class EditTextEx extends EditText {

    public EditTextEx(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override 
    public boolean onCheckIsTextEditor() {
        return false;
    }       
}

我已经测试过了,我根本无法显示软键盘。

于 2010-11-09T17:54:39.217 回答
2
editText.setInputType(EditorInfo.TYPE_NULL);
于 2014-09-09T20:39:22.670 回答
0

在尝试使其正常工作时,我还尝试了:

inputField.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
        }
    });

inputField.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent event) {
        getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
        return false;
    }
});

两者都被调用,但都没有隐藏 IME 弹出窗口。

于 2010-11-09T14:19:56.653 回答