EditText 输入金额 float类型
1.xml中,属性 inputtype
<EditText
android:id="@+id/et_jine"
android:layout_width="match_parent"
android:layout_height="40dp"
android:hint="请输入金额"
android:layout_alignBottom="@+id/tv_Y"
android:layout_toRightOf="@+id/tv_Y"
android:layout_marginRight="50dp"
android:layout_marginBottom="10dp"
android:paddingLeft="15dp"
android:background="@drawable/shape_rechange"
android:inputType="numberDecimal"
/>
2. 监听edittext的输入内容的变化
private void initdata() {
et_jine.addTextChangedListener(new TextChange());
}
public class TextChange implements 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) {
}
@Override
public void afterTextChanged(Editable s) {
int selectionStart = et_jine.getSelectionStart();
int selectionEnd = et_jine.getSelectionEnd();
if (!isOnlyPointNumber(s.toString()) && s.length() > 0) {
//删除多余输入的字(不会显示出来)
s.delete(selectionStart - 1, selectionEnd);
et_jine.setText(s);
et_jine.setSelection(s.length());
}
}
}
public boolean isOnlyPointNumber(String number) {
Pattern pattern = Pattern.compile("^\\d+\\.?\\d{0,1}$");
Matcher matcher = pattern.matcher(number);
return matcher.matches();
}
3. 上面代码中通过正则表达式判断保留一位小数 ,保留两位的话把1变成2;
"^\\d+\\.?\\d{0,1}$"