这个属性能影响两件事情:
【一】当有焦点产生时,软键盘是隐藏还是显示
【二】是否减少活动主窗口大小以便腾出空间放软键盘
它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”值的组合。在任一组设置多个值——多个”state…”values,例如&mdash有未定义的结果。各个值之间用|分开。例如:
在这设置的值(除"stateUnspecified"和"adjustUnspecified"以外)将覆盖在主题中设置的值
各值的含义:
【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
【C】stateHidden:用户选择activity时,软键盘总是被隐藏
【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
【E】stateVisible:软键盘通常是可见的
【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分
可以根据自己的需求来进行选择配置属性值。
二、一些常用的验证邮箱手机号码等方法
public static boolean checkUrl(String url) {
return url.matches("^[a-zA-z]+://[^\\s]*$");
}
public static boolean isMobile(String mobiles) {
Pattern p = Pattern.compile("^((13[0-9])|(14[0-9])|(15[0-9])|(18[0-9]))\\d{8}$");
Matcher m = p.matcher(mobiles);
return m.matches();
}
public static boolean isEmail(String strEmail) {
String strPattern = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
Pattern p = Pattern.compile(strPattern);
Matcher m = p.matcher(strEmail);
return m.matches();
}
public static final String getIMEI() {
String android_id = "";
try {
TelephonyManager telManager = (TelephonyManager) AppContext.mMainContext.getSystemService(Context.TELEPHONY_SERVICE);
android_id = telManager.getDeviceId();
if (android_id == null) {
android_id = android.provider.Settings.System.getString(AppContext.mMainContext.getContentResolver(), "android_id");
}
} catch (Exception e) {
}
return android_id;
}
public static final boolean IsIMEI(String IMEI) {
int s = IMEI.length();
if (s != 15) {
return false;
}
try {
char[] imeiChar = IMEI.toCharArray();
int resultInt = 0;
for (int i = 0; i < 14; i++) {
int a = Integer.parseInt(String.valueOf(imeiChar[i]));
i++;
final int temp = Integer.parseInt(String.valueOf(imeiChar[i])) * 2;
final int b = temp < 10 ? temp : temp - 9;
resultInt += a + b;
}
resultInt %= 10;
resultInt = resultInt == 0 ? 0 : 10 - resultInt;
if (resultInt == Integer.parseInt(String.valueOf(imeiChar[14]))) {
return true;
}
} catch (Exception e) {
// TODO: handle exception
return false;
}
return false;
}
public static boolean checkBankCard(String cardId) {
if (cardId != null && !"".equals(cardId)) {
char bit = getBankCardCheckCode(cardId.substring(0, cardId.length() - 1));
if (bit == 'N') {
return false;
}
return cardId.charAt(cardId.length() - 1) == bit;
}
return false;
}
public static char getBankCardCheckCode(String nonCheckCodeCardId) {
if (nonCheckCodeCardId == null || nonCheckCodeCardId.trim().length() == 0 || !nonCheckCodeCardId.matches("\\d+")) {
// 如果传的不是数据返回N
return 'N';
}
char[] chs = nonCheckCodeCardId.trim().toCharArray();
int luhmSum = 0;
for (int i = chs.length - 1, j = 0; i >= 0; i--, j++) {
int k = chs[i] - '0';
if (j % 2 == 0) {
k *= 2;
k = k / 10 + k % 10;
}
luhmSum += k;
}
return (luhmSum % 10 == 0) ? '0' : (char) ((10 - luhmSum % 10) + '0');
}
本文介绍了Android中如何通过配置Activity解决软键盘遮挡问题,并提供了常用的验证方法,如URL、手机号、邮箱的有效性检查。
1289

被折叠的 条评论
为什么被折叠?



