为空时将 edittext 值设置为零,并在进行任何输入时删除零

setting edittext value to zero when empty and removing zero when any entry is made

我有两个用于显示数学函数结果的编辑文本字段。我有两个问题。我想在两种情况下将文本编辑为零值: 第一: 如果编辑文本为空,我希望编辑文本值自动变为零

第二名: 如果用户删除字段值直到编辑文本为空。

更新: 第一个问题我可以用 setText() 或 android:text="0" 排序,但是当试图解决第二个问题时它变得棘手

尝试这样的事情:

final EditText et = new EditText(this);
et.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) {
        if(et.getText().length() == 0){
            et.setText("0");
        }
    }
});

使用 TextWatcher 如下:

yourEditText.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

                // TODO Auto-generated method stub
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

                // TODO Auto-generated method stub
            }

            @Override
            public void afterTextChanged(Editable s) {

                // TODO Auto-generated method stub
            }
        });

希望对您有所帮助:)

yourEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if(hasFocus){
                if(yourEditText.getText().length() == 1 && yourEditText.getText().toString().trim().equals("0")){
                    yourEditText.setText("");
                }
            }else {
                if(yourEditText.getText().length() == 0){
                    yourEditText.setText("0");
                }
            }
        }
    });