TypechoJoeTheme

香草物语

统计
登录
用户名
密码
/
注册
用户名
邮箱
输入密码
确认密码

android EditText禁止键盘输入

Laughing博主
2021-01-09
/
1 评论
/
1,319 阅读
/
106 个字
/
百度已收录
01/09
本文最后更新于2024年03月18日,已超过184天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

最近在做项目,遇到一个需求,有一个文本框(EditText)存储重量信息,重量信息来源于蓝牙电子秤,所以禁止用户手工输入。

如下图,回收物重量,能正常点击并出现光标,但是不会弹出软键盘

实现

定义一个常量类

/**
 * Description: 反射方法名
 *
 * @author : laughing
 * DateTime: 2021-01-07 13:11
 */
public class ReflectMethodConstants {

    public static String SET_SHOW_SOFT_INPUT_ON_FOCUS = "setShowSoftInputOnFocus";

    public static String SET_SOFT_INPUT_SHOWN_ON_FOCUS = "setSoftInputShownOnFocus";
}

反射设置控件

 //禁止弹出软键盘
            Class<EditText> cls = EditText.class;
            Method method;
            try {
                method = cls.getMethod(ReflectMethodConstants.SET_SHOW_SOFT_INPUT_ON_FOCUS, boolean.class);
                method.setAccessible(true);
                method.invoke(viewHolder.textViewWeight, false);
            } catch (Exception ignored) {
            }
            try {
                method = cls.getMethod(ReflectMethodConstants.SET_SOFT_INPUT_SHOWN_ON_FOCUS, boolean.class);
                method.setAccessible(true);
                method.invoke(viewHolder.textViewWeight, false);
            } catch (Exception ignored) {
            }
            //禁止键盘输入
            viewHolder.textViewWeight.setFilters(new InputFilter[]{
                    (source, start, end, dest, dStart, dEnd) -> {
                        if (source.length() > 1) {
                            return source;
                        }
                        return "";
                    }
            });
朗读
赞(3)
赞赏
感谢您的支持,我会继续努力哒!
版权属于:

香草物语

本文链接:

https://www.xiangcaowuyu.net/app/android-edittext-forbids-keyboard-input.html(转载时请注明本文出处及文章链接)

评论 (1)
  1. 青云 久住
    Windows 10 · Google Chrome

    可以使用

    2021-06-08 回复
  2. 吴蛋蛋 闲逛
    Windows 7 · Google Chrome

    感谢分享

    2018-09-30 回复