2011-03-21 89 views
1

我想定义一组允许用户在EditText框中输入数据的按钮。除了弹出软键盘之外,我需要EditText框的所有默认功能。唯一允许输入EditText框的数据应该是我定义的按钮中的数据。我试图通过捕捉触摸事件并返回true来压制软键盘。 (每谈话found on this thread抑制EditText上软键盘的外观焦点

private OnTouchListener txtTouchListener = new OnTouchListener() 
    { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) 
     { 
     //Return true to suppress the passing of the event on to the OS 
     return true; 
     } 
    }; 

的问题是,这种方法烧制而成,然后块长按事件。为了解决这个问题,我可以返回false,然后处理长按事件。不过,这就使得短按可以打开软键盘。另外,长时间点击不仅可以抑制软键盘,而且上下文菜单也一样。我正在寻找一种方法来阻止键盘出现在短时间(或长时间)点击中,但保留所有其他功能(在短按下更新光标位置,长按鼠标后显示EditText上下文菜单等)。

任何想法都非常感谢!

回答

5

thread提示:

EditText.setInputType(InputType.TYPE_NULL); 

或者你设置在XML中inputType属性来none

虽然没有尝试过。

+1

这很容易...我很惭愧我错过了: - 我注意到的一件事是,如果你在XML中设置了android:inputType =“none”,键盘仍然显示...我不在乎因为EditText.setInputType(InputType.TYPE_NULL);不让键盘出现。谢谢! – paradoX 2011-03-21 23:58:43