有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何验证多个编辑文本?我正在使用文本utils只能获取1个文本

如何验证&;确认所有数据都有值,然后只存储数据? 因为我写了TextUtils.isEmpty(e_Name.getText())然后存储数据,所以它只会验证一个。我想验证所有Edittext的值,然后只允许存储所有数据。我无法放置else if,因为一旦单击“保存”按钮,它将一个接一个地运行。有什么线索吗?先谢谢你

Here Is the Image

这是代码

public void setOnClick() {
    Save.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            {
                if(TextUtils.isEmpty(e_Name.getText())){
                    e_Name.setError("INSERT NAME");
                }else{
                    boolean isInserted = myDb.insertData(e_Txn.getText().toString(),
                            e_Name.getText().toString(),
                            e_Amount.getText().toString(),
                            Display_date.getText().toString().trim(),
                            e_Description.getText().toString(),
                            Description.getSelectedItem().toString());

                    if (isInserted == true) {
                        Toast.makeText(Donation.this, "Data Inserted", Toast.LENGTH_LONG).show();
                    } else {
                        Toast.makeText(Donation.this, "Data not Inserted", Toast.LENGTH_LONG).show();
                    }
                }

            }

        }

    });

共 (4) 个答案

  1. # 1 楼答案

    试试这个:

    这里是我的代码

       next.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                if(Validations.validateForNull(edit_fname, mContext.getResources().getString(R.string.empty_first_name)));
                {
                    if(Validations.validateForNull(edit_lname, mContext.getResources().getString(R.string.empty_last_name)))
                    {
                        if(Validations.validateEmail(edit_email ,mContext.getResources().getString(R.string.empty_email_msg), mContext.getResources().getString(R.string.invalid_email_msg)))
                        {
    
                            if (Validations.validateForNull(edit_mobile_no, mContext.getResources().getString(R.string.empty_phone_number)))
                            {
                                if (Utils.isConnectingToInternet(mContext)){
                                    checkProviderExistApi();
    
                                }
                                else {
                                    Utils.showShortToast(mContext,"Internet not connected");
                                }
    
                                  email=edit_email.getText().toString();
                                  String phn=edit_mobile_no.getText().toString();
                                  number=phn.replaceAll("\\D", "");
                                  Log.e("number--",""+number);
                                  first_name=edit_fname.getText().toString();
                                  last_name=edit_lname.getText().toString();
    
                            }else {
                                check_phone.setVisibility(View.GONE);
                            }
                        }else {
                            check_email.setVisibility(View.GONE);
                        }
                    }
                }
            }
    
        });
    

    验证是我的utils类,我认为它对您有帮助

  2. # 2 楼答案

    最简单的方法是

    if(isValid()){
      // process data here
    }
    

    采用这种方法

    private boolean isValid(){
        if(TextUtils.isEmpty(e_Name.getText())){
           e_Name.setError("this field can not be blank");
           return false;
        } else if (TextUtils.isEmpty(et_amount.getText())){
           et_amount.setError("this field can not be blank");
           return false;
        } else if (...) so on 
        return true;
    }
    
  3. # 3 楼答案

    您可以尝试此代码。可能没有其他方法可以一次验证所有内容

    if(TextUtils.isEmpty(e_Name.getText().toString()) ||
      TextUtils.isEmpty(e_Amount.getText().toString()) ||
      TextUtils.isEmpty(Display_date.getText().toString()) ||
      TextUtils.isEmpty(e_Description.getText().toString()) ||
      TextUtils.isEmpty(Description.getSelectedItem().toString())){
      //Some edittext has no value
      //Warning the field!
    }else {
    //Do your job here
    }
    
  4. # 4 楼答案

    您必须用if而不是像这样的if else语句来检查每一个:

    boolean allValid = true;
    
    if (TextUtils.isEmpty(e_Name.getText())) {
        allValid = false;
        // do other stuff
    }
    if (TextUtils.isEmpty(e_Amount.getText())) {
        allValid = false;
        // do other stuff
    }
    if (TextUtils.isEmpty(e_Description.getText())) {
        allValid = false;
        // do other stuff
    }
    // finally do what you want if allValid = false
    if (!allValid) {
        // your code
    } else {
        // all fields are valid
    }