这几天在写一个计算器,一直苦恼于如何实现不显示输入法,但光标仍存在。
在网上找了一些方法,但都不能很好的实现:
- 一种是在 AndroidMainfest.xml 中的activity标签中添加 android:windowSoftInputMode="stateHidden" ,但是在我的应用中无效。
- 一种是在利用hideSoftInputFromWindow:
1 InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE); 2 imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
但是在输入一些内容后点击EditText后悔瞬间弹出输入法,又瞬间收回。
后来在*上找到了一种测试可行的方法:http://*.com/questions/14282882/android-edit-text-cursor-doesnt-appear
1 editText =((EditText)findViewById(R.id.edit_text)); 2 editText.setRawInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE); 3 editText.setTextIsSelectable(true);
其中的第3行是关键,第2行中的 TYPE_TEXT_FLAG_MULTI_LINE 就是input类型,我的应用要多行显示,所以就用 TYPE_TEXT_FLAG_MULTI_LINE,可修改为其他类型。
注:在*中的这个问题说是要在1、2行加入editText.setInputType(InputType.TYPE_NULL);
但加入后会导致所有内容在一行中显示,不能换行。我测试不加这一行也能实现不显示输入法,但仍有光标。