2012-03-23 34 views
3

我用我自己的键盘做了一个应用程序,我想彻底禁用android默认virtaul键盘。如何禁用EditText的键盘和光标功能..?

我tryed这一点:

myEditText.setOnClickListener(new OnClickListener() 
     { 
      public void onClick(View v) 
      { 
       InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
       imm.hideSoftInputFromWindow(keresetEditText.getWindowToken(), 0); 

      } 
     }); 

据工作柠良好,但无意中我刚刚发现一个错误,真正的错误我到地狱:

当我滑下我的手指上的EditText的软键盘刚出现! 所以得出的结论是:onClickListener只是在我滑动时不运行,而不是点击。

我尝试onTouchListener,但它没有工作! 任何提示如何完全禁用虚拟键盘?我不需要它在整个应用程序。

其他的事情: 我可以做的其他问题StackOverflow的,但我认为它的逻辑在这里这样: 当我在EditText上的光标点击,我可以在我的EditText中的文本移动它,但我不希望它像这样启用。我可以禁用游标可移动性吗?所以我需要闪烁的光标,但完全处于停留位置。

回答

4

这里有一些解决方案为您提供:

  • ,如果你将永远不会需要softkeyboard上显示该活动,你可以设置在明显

  • android:windowSoftInputMode="stateAlwaysHidden"属性禁用编辑文本。您不会有闪烁的光标(或任何光标),但使用禁用的编辑文本打开软键盘是不可能的,但仍然可以在代码中设置自己的文本

  • 只需使用TextView,而设置为背景android.R.drawable.edit_text。它看起来像一个EditText,而只是一个只读的TextView,仍然允许你从代码设置任何值。再次,您仍然没有闪烁的光标

  • 将EditText的可聚焦和可点击的属性设置为false。编辑文本将永远不会获得焦点,因此永远不会导致软键盘显示

  • (这是一个黑客)在编辑文本上放置了一个不可见的按钮,因此点击edittext实际上会被按钮拦截没有。编辑文本仍然可以使用轨迹球或方向键进行调焦,并且您仍然不会有闪烁的光标

+0

您是问题的主人,我将使用第四个选项谢谢! – 2012-03-23 14:47:45

+0

谢谢 - 在搜索一个小时的stackoverflow后,我终于找到了你的解决方案。我也使用了第四种选择!谢谢! – Simon 2014-10-28 17:28:46

相关问题