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

时间:2015-08-04 09:01:50

标签: android android-edittext

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

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

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

3 个答案:

答案 0 :(得分:4)

尝试这样的事情:

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");
        }
    }
});

答案 1 :(得分:2)

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");
                }
            }
        }
    });

答案 2 :(得分: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
            }
        });

我希望这会有所帮助:)