Android 在不丢失光标的情况下从 EditText 隐藏软键盘 [英] Android Hide Soft Keyboard from EditText while not losing cursor

查看:30
本文介绍了Android 在不丢失光标的情况下从 EditText 隐藏软键盘的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经到了这个 这让我走到了一半,但并不完全.我有一个拨号器 Fragment,它具有所有常用的 Button 来输入包括退格键在内的数字,所以我不需要软键盘.我还想让用户能够粘贴文本(长按...默认情况下工作正常),以及编辑已输入的内容,因此我需要光标.

I've come about as far as this which gets me halfway there, but not quite. I have a dialer Fragment that has all the usual Buttons to enter a number including backspace, so I don't need the soft keyboard. I'd also like to give the user the ability to paste text (long click... works fine per default), as well as to edit what has been entered so I need the cursor.

如果用户在 EditText 内单击,我发现确保软键盘不会弹出的最简单方法是将 inputType 设置为 null - 但那也会杀死光标.

The easiest way I found to make sure the soft keyboard doesn't pop up if the user clicks inside the EditText is to set the inputType to null - but that kills the cursor as well.

那么,我如何声明我的 EditText 以及我应该启动什么样的命令来让我的 EditText 字段永远不会显示软键盘,无论用户尝试什么,但仍保留粘贴功能和光标?

So, how do I declare my EditText and what kind of commands should I launch to have my EditText field never ever show the soft keyboard no matter what the user attempts, but still retain paste functionality and the cursor?

我也在清单中尝试了 android:windowSoftInputMode="stateAlwaysHidden",但无济于事.

I've also tried android:windowSoftInputMode="stateAlwaysHidden" in my manifest, but to no avail.

推荐答案

这对我有用:

        // Update the EditText so it won't popup Android's own keyboard, since I have my own.
    EditText editText = (EditText)findViewById(R.id.edit_mine);
    editText.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            v.onTouchEvent(event);
            InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
            if (imm != null) {
                imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
            }                
            return true;
        }
    });

这篇关于Android 在不丢失光标的情况下从 EditText 隐藏软键盘的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆