设置 EditText只能输入金额 用InputFilter过滤
private EditText money;
money = (EditText) findViewById(R.id.money);
//设置过滤器
money.setFilters(new InputFilter[]{new InputMoney()});
/**
* 限制只能输入金额
*
* @author zengchao
*
*/
private class InputMoney implements InputFilter{
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
// TODO Auto-generated method stub
if (source.toString().equals(".") && dstart == 0 && dend == 0) {//判断小数点是否在第一位
money.setText(0+""+source+dest);//给小数点前面加0
money.setSelection(2);//设置光标
}
if (dest.toString().indexOf(".") != -1 && (dest.length() - dest.toString().indexOf(".")) > 2) {//判断小数点是否存在并且小数点后面是否已有两个字符
if ((dest.length() - dstart) < 3) {//判断现在输入的字符是不是在小数点后面
return "";//过滤当前输入的字符
}
}
return null;
}
}
xml
android:id="@+id/money"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:singleLine="true"
android:inputType="numberDecimal"
android:hint="请输入金额" />