Android 如何防止长按EditText小部件时显示虚拟键盘?

Android 如何防止长按EditText小部件时显示虚拟键盘?,android,Android,我的应用程序中有一个EditText小部件,设置为只读,我想知道用户何时长按它。如果用户点击这个小部件,我不希望虚拟键盘弹出 要阻止虚拟键盘出现,我使用以下方法: EditText=(EditText)findViewById(R.id.editText01); editText.setClickable(假) 这是可行的,但如果我只使用LongClickListener(),则无法收到任何长新闻消息 有人知道如何防止弹出式键盘出现,但仍然会出现长按事件吗 谢谢 编辑:事实上,我尝试了这个问题的

我的应用程序中有一个EditText小部件,设置为只读,我想知道用户何时长按它。如果用户点击这个小部件,我不希望虚拟键盘弹出

要阻止虚拟键盘出现,我使用以下方法:

EditText=(EditText)findViewById(R.id.editText01); editText.setClickable(假)

这是可行的,但如果我只使用LongClickListener(),则无法收到任何长新闻消息

有人知道如何防止弹出式键盘出现,但仍然会出现长按事件吗

谢谢

编辑:事实上,我尝试了这个问题的前两个答案,但都不起作用。我最后做的是针对EditText小部件,我使用了以下内容:

editText.setInputType(InputType.TYPE_NULL);
editText.setCursorVisible(false);
editText.setOnLongClickListener(mOnLongClickListener);

setInputType()方法调用关闭对小部件的单击。setOnLongClickListener()例程将处理小部件上的所有长按事件,我从该例程返回一个true,该例程基本上使用长按事件。因此,我现在有了一个EditText小部件,当按下该小部件时,它不会弹出虚拟键盘,但长按该小部件将调用我的侦听器方法。

尝试使用此选项和可用选项

button.setOnLongClickListener (View.OnLongClickListener l(){

//override the method  

//then do this

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
});
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
我的问题是,当我的活动开始时,如果有EditText,kepyboard会自动弹出。因此,我在OnCreate()中使用了上述方法。尝试使用不同的选项,而不是“.SOFT\u INPUT\u STATE\u ALWAYS\u HIDDEN”