1. 手机号添加空格
etPhone.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
int length = s.toString().length();
switch (count) {
case 0: // 删除数字
if (length == 4)
etPhone.setText(s.subSequence(0, 3));
if (length == 9)
etPhone.setText(s.subSequence(0, 8));
break;
case 1: // 添加数字
if (length == 4)
etPhone.setText(s.subSequence(0, 3) + " " + s.subSequence(3, length));
if (length == 9)
etPhone.setText(s.subSequence(0, 8) + " " + s.subSequence(8, length));
break;
}
}
@Override
public void afterTextChanged(Editable s) {
//将光标移动到末尾
etPhone.setSelection(etRechargePhone.getText().length());
}
});
2. 隐藏EditText的下划线
android:background="@null"
3. EditText设置不获取焦点,也就是进入页面时不跳出小键盘
在EditText的父布局加上
android:focusable=“true”
android:focusableInTouchMode=“true”
4. EditText只能输入数字
android:inputType=“number”
5. EditText只能输入汉字
自定义一个方法
/**
* 汉字过滤器,结果会只剩汉字
* @param str 传入的String
* @return 删除掉所有除汉字外内容的String
* @throws PatternSyntaxException
*/
public static String chineseFilter(String str) throws PatternSyntaxException {
//只允许汉字
String regEx = "[^\u4E00-\u9FA5]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
}
然后用EditText添加如下内容
edName.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
String strs= edName.getText().toString();
String str = StringUtil.chineseFilter(strs.toString());
if (!strs.equals(str)) {
edName.setText(str);
edName.setSelection(str.length());
}
}
@Override
public void afterTextChanged(Editable s) {
}
});