public class KeyUtils {
private static final int MIN_CLICK_DELAY_TIME = 1000;
private static long lastClickTime;
/**
* 两次点击按钮之间的点击间隔不能少于1000毫秒
*
* @return
*/
public static boolean isFastClick() {
boolean flag = false;
long curClickTime = System.currentTimeMillis();
if ((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) {
flag = true;
}
lastClickTime = curClickTime;
return flag;
}
/**
* 屏蔽掉系统默认输入法
*
* @param mActivity
* @param input
*/
public static void shieldSystemKeydown(Activity mActivity, EditText input) {
if (Build.VERSION.SDK_INT <= 10) {
input.setInputType(InputType.TYPE_NULL);
} else {
mActivity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
try {
Class<EditText> cls = EditText.class;
Method setShowSoftInputOnFocus = cls.getMethod("setShowSoftInputOnFocus", boolean.class);
setShowSoftInputOnFocus.setAccessible(true);
setShowSoftInputOnFocus.invoke(input, false);
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 隐藏键盘
*
* @param view
*/
public static void hideKeydown(View view) {
Context mContext = CitApplication.getInstance().getApplicationContext();
InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
/**
* 打开键盘
*
* @param view
*/
public static void openKeydown(View view) {
view.requestFocus();
Context mContext = CitApplication.getInstance().getApplicationContext();
InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view, 0);
}
public static void setEditTextInhibitInputSpace(EditText editText) {
InputFilter filter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
if (source.equals(" ")) return "";
else return null;
}
};
editText.setFilters(new InputFilter[]{filter});
}
/**
* 禁止EditText输入特殊字符
*
* @param editText
*/
public static void setEditTextInhibitInputSpeChat(EditText editText) {
InputFilter filter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
String speChat = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
Pattern pattern = Pattern.compile(speChat);
Matcher matcher = pattern.matcher(source.toString());
if (matcher.find()) return "";
else return null;
}
};
editText.setFilters(new InputFilter[]{filter});
}
}