2012-11-10 133 views
3

我正在为Android编写一个计算器,用于输入表达式我使用EditText。当我创建我的按钮 - 我不需要软件键盘,但我想更改光标位置,文本选择,复制,粘贴。总而言之 - 一切都如此,只有虚拟键盘不会显示。 在2.3版本我可以这样写:在Android 4中的EditText中输入时隐藏软键盘

EditText.setInputType (InputType.TYPE_NULL); 

它完美地工作。在游标的版本4中不显示,菜单不起作用,等等。尝试了很多方法 - 你不能移动光标,显示键盘,它从来没有真正解释过。

InputMethodManager imm = (InputMethodManager)getSystemService(
    Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); //cursor not showing 
------------------------------------------------------------------------ 
getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); //not working 

我想使它在Panecal,MobiCalc免费,科学计算器。我会很高兴与此有关的任何有用的建议。 P.S.对不起我的英语不好。

回答

2

从下面发布的链接,这里是消耗在触摸一个例子的EDITTEXT

editText_input_field.setOnTouchListener(otl); 

private OnTouchListener otl = new OnTouchListener() { 
    public boolean onTouch (View v, MotionEvent event) { 
      return true; // the listener has consumed the event 
    } 
}; 

下面是来自同一网站的另一个例子。这要求工作,但似乎是一个糟糕的主意,因为你的编辑框为空,将不再编辑:

MyEditor.setOnTouchListener(new OnTouchListener(){ 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     int inType = MyEditor.getInputType(); // backup the input type 
     MyEditor.setInputType(InputType.TYPE_NULL); // disable soft input 
     MyEditor.onTouchEvent(event); // call native handler 
     MyEditor.setInputType(inType); // restore input type 
     return true; // consume touch even 
    } 
}); 

希望这点你在正确的方向

以上回答是摘自 - how to block virtual keyboard while clicking on edittext in android?

这可能工作太 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

+0

被隐藏,光标闪烁,BU我不能移动它;第二种情况相同,但在表达式开始处设置游标;第三种情况绝对没有效果。感谢您尝试帮助。 – user1814546

+0

如果你谷歌如何停止软盘键盘上来,你会得到更多的结果 – jcw

+0

我Google很多次,没有人工作。 – user1814546

0

这个确切的解决方案是通过在EditText上设置标志textIsSelectableTRU e。这将保留光标,你就可以利用基本的选择/复制/剪切/粘贴等functions.You可以将它设置在你的XML布局是这样的:

您可以通过编程设置是这样的:

EditText edit_text = (EditText) findViewById(R.id.editText); 
edit_text.setTextIsSelectable(true); 

或者在你的XML布局:

<EditText 
    ... 
    android:textIsSelectable="true" 
/> 

对于使用API​​ 10及以下,黑客在这里提供的任何一个:在第一种情况下键盘https://stackoverflow.com/a/20173020/7550472

相关问题