EditText限制只可以输入数字和小数点,小数点后面只可以输入两位(可使用于输入折扣等)

这篇博客介绍了如何在Android中使用EditText限制用户输入,仅允许输入数字和一个小数点,且小数点后最多只能输入两位。通过xml布局文件设置minWidth、maxLength、inputType属性,并将textCursorDrawable设为@null。此外,文章提到了可以通过监听事件进一步控制输入。示例应用场景为输入折扣值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

xml布局:

 <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:minWidth="20dp"
            android:id="@+id/et_discounts"
            android:background="@null"
            android:inputType="number|numberDecimal"
            android:textCursorDrawable="@null"
            android:maxLength="4"
           />

xml关键属性介绍:
minWidth:设置文本区域的最小宽度
maxLength:限制显示的文本长度,超出部分不显示
inputType=”number|numberDecimal”:设置输入类型,只允许输入数字和小数点。
textCursorDrawable=”@null”:设成和文字一样的颜色
activity关键代码:

    /**
     *  绑定view
    */
   @BindView(R.id.et_discounts)
    EditText mDiscounts;

mDiscounts.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                if (!TextUtils.isEmpty(charSequence)) {
                    try {
                        float aFloat = Float.parseFloat(charSequence.toString());
                        if (aFloat > 10.0) {
                            float v = aFloat / 10;
                            mDiscounts.setText(String.valueOf(v));
                        }
                    } catch (NumberFormatException e) {
                        Toast.makeText(SettlementActivity.this, "请输入折扣!", Toast.LENGTH_SHORT).show();
                    }
                }


            }

还可以给输入框添加监听事件:mDiscounts.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 一点击则清空输入框的内容
mDiscounts.setText("");
}
});

写的内容比较简单,纯粹是为了培养自己写博客的习惯而已,下图是用到的地方,输入折扣那块:
红框标记的地方

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值