/**
* 控件工具类
*/
public class WidgetUtil {
/**
* 获取编辑框的最大长度,通过反射机制调用隐藏方法
*
* @param editText 文本控件
* @return 长度
*/
public static int getMaxLength(EditText editText) {
int length = 0;
try {
InputFilter[] inputFilters = editText.getFilters();
for (InputFilter filter : inputFilters) {
Class<?> c = filter.getClass();
if (c.getName().equals("android.text.InputFilter$LengthFilter")) {
Field[] f = c.getDeclaredFields();
for (Field field : f) {
if (field.getName().equals("mMax")) {
field.setAccessible(true);
length = (Integer) field.get(filter);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return length;
}
/**
* 关闭所有键盘
* @param act Activity
*/
public static void hideAllInputMethod(Activity act) {
// 从系统服务中获取输入法管理器
InputMethodManager imm = (InputMethodManager) act.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isActive()) {
// 软键盘如果已经打开则关闭之
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
}
}
/**
* 关闭一个控件的键盘
* @param act Activity
* @param view 控件
*/
public static void hideOneInputMethod(Activity act, View view) {
// 从系统服务中获取输入法管理器
InputMethodManager imm = (InputMethodManager) act.getSystemService(Context.INPUT_METHOD_SERVICE);
// 关闭屏幕上的输入法软键盘
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
控件工具类
猜你喜欢
转载自blog.csdn.net/m0_48440239/article/details/114189514
今日推荐
周排行