避免虚拟键盘弹出

Posted

技术标签:

【中文标题】避免虚拟键盘弹出【英文标题】:avoid the virtual keyboard popup 【发布时间】:2012-04-16 08:31:54 【问题描述】:

我创建了一个 EditText,我想在长按 EditText 时避免出现虚拟键盘小狗。但仍然可以选择文本中的单词。

我想要一个看起来像 textView(已经完成)的 EditText,并且可以在 editText 中选择单词进行搜索。但不想要虚拟键盘和上下文菜单(或更改它的菜单项,但这并不重要)。可以吗?

【问题讨论】:

【参考方案1】:

创建您自己的扩展 EditText 的 EditText,然后覆盖 onCheckIsTextEditor()

public class MyEditText extends EditText 
    public MyEditText (Context context)
    
        super(context);
    

    public MyEditText (Context context, AttributeSet attrs)
    
        super(context, attrs);
          

    public MyEditText (Context context, AttributeSet attrs, int defStyle)
    
        super(context, attrs, defStyle);
    

    @Override
    public boolean onCheckIsTextEditor()
    
        return false;
    

【讨论】:

如果我创建自己的editText MyEditText,我可以简单地使用作为xml文件中的标签。 谢谢,不过我也想让EditText可以选择,可以吗? 你可以照常选择/复制/剪切/粘贴 如果我复制你的代码,我做不到。我需要修改你的代码吗?以及如何? 但是编辑代码后长按edittext会弹出键盘。【参考方案2】:

您可以在您的代码中为EditText设置以下代码。这样它就不会在android中弹出软键盘

    mEditText.setInputType(InputType.TYPE_NULL);
    mEditText.setOnLongClickListener(new OnLongClickListener() 

        @Override
        public boolean onLongClick(View arg0) 
            return true;
        
    );

【讨论】:

【参考方案3】:

试试看 -

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

【讨论】:

以上是关于避免虚拟键盘弹出的主要内容,如果未能解决你的问题,请参考以下文章

WPF 禁用TextBox的触摸后自动弹出虚拟键盘

WPF 禁用TextBox的触摸后自动弹出虚拟键盘

安卓手机虚拟键盘怎么关闭

win10虚拟键盘怎么打开

WIN7系统触摸屏一体机,点击输入框自动弹出虚拟键盘!

监听虚拟键盘弹出的高度