检查android编辑文本中的空值

时间:2018-11-16 08:36:49

标签: android android-edittext

我是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 :(得分:0)

您可以使用yourEditText.getText()。trim()。equalsIgnoreCase(“”)检查您的编辑文本是否为空

答案 1 :(得分:0)

Savi,您的editText.getText()。toString()永远不能为null,尽管-“”可以为空字符串。您只想使用.isEmpty()检查即可。

TextUtils.isEmpty(..)将检查您的String是否为null或为空,在这种情况下,您不需要这样做,因为null检查只是开销。

您可以添加所有其他种类的验证,我建议您在验证器类中进行验证,或者基本上为验证创建一个通用的位置,以便所有视图都可以轻松使用它们并对其进行验证,显示提示错误或执行其他操作

这是关于editText字段的问题,如果您的getChild方法返回null则是另一回事,请检查该方法返回的内容,仅当它不为null时,继续执行成功流程。

答案 2 :(得分:0)

将edittext值存储在字符串中,然后在问题下方的注释中使用@Jay提供的TextUtils.isEmpty(java.lang.CharSequence)解决方案。然后使用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();
                }

            }

答案 3 :(得分:0)

您可以通过以下代码从这两者中检查空值:

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

            }
            }
            } 

答案 4 :(得分:-1)

您需要全局定义数字和密码值。

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

空控件:

cb.isChecked();