android - 用户完成编辑后如何从 EditText 中移除焦点?

标签 android android-edittext

我的布局上有一个 EditText。在用户输入一些文本并点击“完成”键后,我想从中删除闪烁的光标。我搜索了 StackOverflow 并找到了 3 个对我不起作用的答案。闪烁的光标仍然存在。

private class MyOnKeyListener implements OnKeyListener {
  public boolean onKey(View v, int keyCode, KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN
    && keyCode == KeyEvent.KEYCODE_ENTER) {
      // FAIL 0
      MyActivity.this.findViewById(R.id.someOtherView).requestFocus();

      // FAIL 1
      InputMethodManager imm = (InputMethodManager)getSystemService(
        Context.INPUT_METHOD_SERVICE
      );
      imm.hideSoftInputFromWindow(v.getWindowToken(), 0);

      // FAIL 2
      MyActivity.this.getWindow().setSoftInputMode(
        WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN
      );

      return true;
    } else {
      return false;
    }
  }
}

最佳答案

你可以使用 xml 属性,

android:cursorVisible 

或者您可以使用此方法在代码中执行此操作。

 setCursorVisible(boolean).

关于android - 用户完成编辑后如何从 EditText 中移除焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8766781/

相关文章:

java - 使用 maven 和 IntelliJ 创建 apklibs

java - 使用反射方法设置EditText光标颜色

android - ExpandableListView onChildClickListener

java - Eclipse : edittext changed listener , edittext 长度到微调项目

android - 多模块项目中缺少顶级 build.gradle

java - 同时发出 JSON 请求

java - 比较方法违反其一般契约

java - 从 EditText 获取数字

android - 为 Android 中的每个字符拆分 EditText

android - 在 cocos2dx 的暂停菜单中暂停时无法调用方法