代码之家  ›  专栏  ›  技术社区  ›  sjngm quinti

Android:如何关闭EditText的输入法?

  •  3
  • sjngm quinti  · 技术社区  · 14 年前

    EditText ?

    或者:如何避免显示输入法键盘?

    我有一个布局,我的特殊键盘位于 编辑文本 所以没必要显示时间。请理解我不能将键盘作为输入法来实现,因为它是专门为这个 编辑文本 在任何其他情况下使用它只会导致问题。

    我试着用

    getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    

    onCreate()

    3 回复  |  直到 14 年前
        1
  •  6
  •   Reuben Scratton    14 年前

    我想我找到了办法。。。子类 EditText 和覆盖 onCheckIsTextEditor() 要返回false:

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

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

        2
  •  2
  •   betorcs    10 年前
    editText.setInputType(EditorInfo.TYPE_NULL);
    
        3
  •  0
  •   sjngm quinti    14 年前

    在试着让它工作的同时,我也试着:

    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;
        }
    });