android EditText实现不显示输入法,但仍有光标

时间:2022-09-22 22:54:13

这几天在写一个计算器,一直苦恼于如何实现不显示输入法,但光标仍存在。

在网上找了一些方法,但都不能很好的实现:

  1. 一种是在 AndroidMainfest.xml 中的activity标签中添加 android:windowSoftInputMode="stateHidden" ,但是在我的应用中无效。
  2. 一种是在利用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); 但加入后会导致所有内容在一行中显示,不能换行。我测试不加这一行也能实现不显示输入法,但仍有光标。