【问题标题】:Editext keyboard visibility on off programmatically Android以编程方式关闭 Android 的 Edittext 键盘可见性
【发布时间】:2016-06-15 05:47:41
【问题描述】:

我是 Android 新手。当我点击它时,我有一个编辑文本,键盘会自动显示。但是我想要做的是当用户在编辑文本上的双标签应该显示键盘时。我怎样才能实现它?

 <Edit Text
            android:id="@+id/TV"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="type something"/>

这里我采用简单的编辑文本。我采用一个手势监听器类来实现双击监听器事件。

【问题讨论】:

标签: android keyboard android-edittext


【解决方案1】:

为什么不使用OnLongClickListener 来实现你想要的?

yourEditText .setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                //show your keyboard
                return false;
            }
        });

点击编辑文本时隐藏软键盘

  yourEditText.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                 InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
        if (imm != null) {
            imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
        }       

            }
        });

这里也看过这个帖子Android: How to detect double-tap?可能会帮助你理解

【讨论】:

  • 我只想在单击edittext时停止自动打开键盘,但我不知道如何实现它。
  • 检查我的编辑答案,如果你成功了,我会告诉我。希望能帮到你。
  • 不,它不工作仍然单击打开键盘
  • 是的,它不起作用,因为 imm.hideSoftInputFromWindow(yourEditText.getWindowToken(), 0);是一种切换行为。
【解决方案2】:

找到下面的代码,它将检查edittext是否打开。如果打开它就会关闭它

     yourEditText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            yourEditText= this.getCurrentFocus();
            if (yourEditText!= null) {
                InputMethodManager imm = (InputMethodManager) getActivity()
                        .getSystemService(Context.INPUT_METHOD_SERVICE);

                if (imm.isAcceptingText()) {
                    imm.hideSoftInputFromWindow(yourEditText.getWindowToken(), 0);
                }
            }

        }
    });

【讨论】:

    猜你喜欢
    • 2020-09-30
    • 1970-01-01
    • 2011-12-16
    • 2022-12-06
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多