Laughing
android EditText禁止键盘输入
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 "";
}
});
版权属于:
香草物语
本文链接:
https://www.xiangcaowuyu.net/app/android-edittext-forbids-keyboard-input.html(转载时请注明本文出处及文章链接)
作品采用:
可以使用
感谢分享