Пусть EditText может вводить ноль, когда ноль является первым числом - PullRequest
4 голосов
/ 29 марта 2012

Теперь мой EditText может только вводить число. Но я хочу запретить ввод нуля, когда ноль - это первое число. Как я могу это сделать?

Ответы [ 5 ]

6 голосов
/ 29 марта 2012

Это должно помочь вам:

        yourTextEdit.addTextChangedListener(new TextWatcher(){
        public void onTextChanged(CharSequence s, int start, int before, int count)
        {
            if (yourTextEdit.getText().matches("^0") )
            {
                // Not allowed
                yourTextEdit.setText("");
            }
        }
        public void beforeTextChanged(CharSequence s, int start, int count, int after){}
        public void afterTextChanged(Editable s){}
    }); 
1 голос
/ 29 марта 2012

Это поможет тебе

if(edittext.getText().toString().length()== 0 || Integer.valueOf(edittext.getText().toString())== 0){
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setMessage("Please enter atleast 1 as value");
                builder.setCancelable(true);
                builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int id) {
                        // TODO Auto-generated method stub
                            dialog.cancel();
                    }
                });
                builder.create().show();
            }
0 голосов
/ 23 сентября 2017

Я попробовал вот так, и все работает отлично!

  yourEditText.addTextChangedListener(new TextWatcher(){
                public void onTextChanged(CharSequence s, int start, int before, int count)
                {
//***  Use the below to lines ****
                    if (yourEditText.getText().startsWith("0") )
                        yourEditText.setText("");    
                }
                public void beforeTextChanged(CharSequence s, int start, int count, int after){}
                public void afterTextChanged(Editable s){}
            });
0 голосов
/ 29 марта 2012

Вы можете достичь этого с помощью 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) {
            String tmp = s.toString().trim();
            if(tmp.length()==1 && tmp.equals("0"))
                s.clear();
        }
    });
0 голосов
/ 29 марта 2012

Вы можете написать логику, используя TextWatcher.Попробуйте Google для textwatcher.

Для начала ниже приведен фрагмент кода.

<textboxobj>.addTextChangedListener(new TextWatcher() {
        public void afterTextChanged(Editable s) {
            // Nothing
        }
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            // Nothing
        }
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // Write your stuff here
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...