Проверьте нулевые значения в Android редактировать текст - PullRequest
0 голосов
/ 16 ноября 2018

Я новичок в разработке Android и Android Studio, так что извините за мое невежество.

Здесь я пытаюсь получить значения из номера телефона (editphone) и пароля (editpassword). Так что, пожалуйста, сообщите мне, как улучшитькод ниже проверяет нулевые значения от обоих.

 Signbutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            final ProgressDialog mdialog = new ProgressDialog(signin.this);
            mdialog.setMessage("please waiting...");

            table_user.addListenerForSingleValueEvent(new ValueEventListener() {

                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {

                    if(dataSnapshot.child(editphone.getText().toString()).exists())
                    {
                        mdialog.dismiss();
                        user userobj = dataSnapshot.child(editphone.getText().toString()).getValue(user.class);

                        if (userobj.getPassword().equals(editpassword.getText().toString())) {
                            Toast.makeText(getApplicationContext(), "Sign in successfully", Toast.LENGTH_SHORT).show();
                        } else {
                            Toast.makeText(getApplicationContext(), "Sign in failed", Toast.LENGTH_SHORT).show();
                        }
                    }
                    else
                        {

                        Toast.makeText(getApplicationContext(), "user is not exist", Toast.LENGTH_SHORT).show();
                    }

                }

Ответы [ 5 ]

0 голосов
/ 16 ноября 2018

Вы можете проверить нулевые значения из обоих следующих кодов:

Signbutton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        final ProgressDialog mdialog = new ProgressDialog(signin.this);
        mdialog.setMessage("please waiting...");

       if (!TextUtils.isEmpty(editphone.getText.toString.trim()) && !TextUtils.isEmpty(editpassword.getText.toString.trim())) {

        table_user.addListenerForSingleValueEvent(new ValueEventListener() {

            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                if(dataSnapshot.child(editphone.getText().toString()).exists())
                {
                    mdialog.dismiss();
                    user userobj = dataSnapshot.child(editphone.getText().toString()).getValue(user.class);

                    if (userobj.getPassword().equals(editpassword.getText().toString())) {
                        Toast.makeText(getApplicationContext(), "Sign in successfully", Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(getApplicationContext(), "Sign in failed", Toast.LENGTH_SHORT).show();
                    }
                }
                else
                    {

                    Toast.makeText(getApplicationContext(), "user is not exist", Toast.LENGTH_SHORT).show();
                }

            }
            }
            } 
0 голосов
/ 16 ноября 2018

Сохраните значение edittext в строке и затем используйте решение TextUtils.isEmpty (java.lang.CharSequence), предоставленное @Jay в комментарии под вашим вопросом. Затем используйте логическое значение, возвращаемое isEmpty (String) для обработки нулевого значения.

table_user.addListenerForSingleValueEvent (new ValueEventListener () {

            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                String str1 = editphone.getText().toString(); // use this at other places too where you are getting string from edittexts
                if(TextUtils.isEmpty(java.lang.CharSequence)){
                 // show your toast or msg or perform any other task
                 return;
                }

                if(dataSnapshot.child(str1).exists())
                {
                    mdialog.dismiss();
                    user userobj = dataSnapshot.child(editphone.getText().toString()).getValue(user.class);

                    if (userobj.getPassword().equals(editpassword.getText().toString())) {
                        Toast.makeText(getApplicationContext(), "Sign in successfully", Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(getApplicationContext(), "Sign in failed", Toast.LENGTH_SHORT).show();
                    }
                }
                else
                    {

                    Toast.makeText(getApplicationContext(), "user is not exist", Toast.LENGTH_SHORT).show();
                }

            }
0 голосов
/ 16 ноября 2018

вам нужно определить число и пароль в глобальном масштабе.

CheckBox cb = (CheckBox) findViewById (R.id. ***);

Нулевой контроль:

cb.isChecked ();

0 голосов
/ 16 ноября 2018

Savi, ваш editText.getText (). ToString () никогда не может быть нулевым, это может быть пустая строка, хотя - "".Что вы хотели бы сделать, это просто проверить с помощью .isEmpty ().

TextUtils.isEmpty (..) проверит вашу строку, если она пуста или пуста, что вам не нужно в этом случае, так какпроверка нуля будет просто накладными расходами.

Вы можете добавить все другие виды проверок, я бы посоветовал вам сделать их в классе валидаторов или в основном, чтобы создать общее место для проверок, которые могут использоваться всеми вашимилегко просматривать и проверять их, показывать ошибки подсказок или что-то в этом роде.

Это касается полей editText, если ваш метод getChild возвращает значение null, это другая история, проверьте, что возвращает метод, и только если он не равен нулю, продолжайте споток успеха.

0 голосов
/ 16 ноября 2018

Вы можете использовать yourEditText.getText (). Trim (). EqualsIgnoreCase ("") для проверки, является ли ваш текст редактирования пустым или нет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...