editText禁止第一个输入0

在很多时候遇到需要输入的第一个不能为0 的情况,下面就是这种情况的解决:

exchangeQuantity.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) {
        if (exchangeQuantity.getText().toString().matches("^0")) {//判断当前的输入第一个数是不是为0 
            exchangeQuantity.setText("");
        }
    }

    @Override
    public void afterTextChanged(Editable s) {

    }
});

在Android开发中,如果你想要实现在两个`EditText`控件之间同步输入内容,你可以通过设置它们之间的监听事件来实现。通常的做法是在其中一个`EditText`的内容改变时,更新另一个`EditText`的内容。以下是一个简单的步骤: 1. 首先,在布局文件中关联这两个`EditText`控件,并给他们分别起个ID,比如`editText1`和`editText2`。 ```xml <EditText android:id="@+id/editText1" ...> </EditText> <EditText android:id="@+id/editText2" ...> </EditText> ``` 2. 在对应的Activity或Fragment的`onCreate()`或`onViewCreated()`方法中,给这两个`EditText`添加ContentObserver,以便在文本变化时得到通知: ```java EditText editText1 = findViewById(R.id.editText1); EditText editText2 = findViewById(R.id.editText2); // 创建ContentObserver实例 ContentObserver contentObserver = new ContentObserver(new Handler()) { @Override public void onChange(boolean selfChange) { // 当内容改变时,同步另一控件的值 String text1 = editText1.getText().toString(); editText2.setText(text1); // 或者使用setText()的第二个版本(防止直接赋值导致不必要的变更) } }; // 注册观察 editText1.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) {} @Override public void afterTextChanged(Editable s) { // 发送内容改变的信号 contentObserver.onChange(true); } }); // 对于EditText2,同样注册监听并同步到editText1 ... ``` 这样,当你在一个`EditText`中输入内容时,另一个`EditText`会实时更新显示同样的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值