先看下XML布局文件
<EditText
android:id="@+id/et"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/tv_count"
android:background="@null"
android:hint="@string/free_txt"
android:inputType="numberDecimal"
android:maxLength="10"
android:singleLine="true"
android:textColor="@color/txt_black1"
android:textColorHint="@color/txt_gray2"
android:textSize="@dimen/textsize16" />
android:inputType="numberDecimal"
这句的属性是可输入小数
/** 输入框小数的位数*/
private static final int DECIMAL_DIGITS = 1;
/**
* 设置小数位数控制
*/
InputFilter lengthfilter = new InputFilter() {
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
// 删除等特殊字符,直接返回
if ("".equals(source.toString())) {
return null;
}
String dValue = dest.toString();
String[] splitArray = dValue.split("\\.");
if (splitArray.length > 1) {
String dotValue = splitArray[1];
int diff = dotValue.length() + 1 - DECIMAL_DIGITS;
if (diff > 0) {
return source.subSequence(start, end - diff);
}
}
return null;
}
};
mEt.addTextChangedListener(mTextWatcher);
// 控制输入框的小数位和长度,这里长度暂时设置为10
mEt.setFilters(new InputFilter[] { lengthfilter, new InputFilter.LengthFilter(10) });
这样就OK了,很简单吧,其实这个InputFilter很强大滴