第一次在软键盘上禁用0键

时间:2016-01-08 05:58:22

标签: android android-edittext

我想在用户点击0时首次禁用软键盘上的EditText个数字键。

EditTextinput type number,我必须输入一个十位数的电话号码,其中第一个数字不应为零。

请建议我如何实现这个目标?

3 个答案:

答案 0 :(得分:2)

    boolean changing = false;

    EditText edit = (EditText)findViewById(R.id.medittext);
    edit.addTextChangedListener(new TextWatcher() {

        @Override
        public void afterTextChanged(Editable s) {
             if (!changing && edit.getText().toString().startsWith("0")){
                changing = true;
                edit.setText(edit.getText().toString().replace("0", ""));
             }
             changing = false; 
        }

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

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        } 

    });

答案 1 :(得分:0)

使用你的" 0"处理" onTextChanged" 。使用此代码:

 if(arg0.length()>0){
    if(arg0.charAt(0)=='0'){
        your_edittext.setText("");
    }
}

答案 2 :(得分:0)

EditText edit =(EditText)findViewById(R.id.medittext);         edit.addTextChangedListener(new TextWatcher(){

        @Override
        public void afterTextChanged(Editable s) {
             String input = editable.toString();
            if (input.length() > 0 && input.charAt(0) == '0') {
                editable.replace(0, 1, "");
            }
        }

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

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        }

    });