【问题标题】:validate editText on buttonclick event [duplicate]在按钮单击事件上验证editText [重复]
【发布时间】:2018-01-30 08:49:05
【问题描述】:

我是 android 编程新手,还在学习。为了练习,我开始创建一个非常简单和基本的应用程序,它计算按钮点击的年龄,以出生年份作为输入。 我设法让它工作并想对其进行一些验证。就像我已经验证了我们提供的价值不应该超过当年,我成功地做到了。

现在我的问题是我还想验证如果没有输入并且按下按钮,那么它应该通过 Toast 提醒用户。到目前为止,我已经尝试过,但每次我按下按钮时,editText 中没有任何内容,应用程序就会崩溃。

这是我的代码。

        calcAge.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub



             if(dob > year){

                Toast.makeText(getApplicationContext(), "Provide valid Input", Toast.LENGTH_SHORT).show();
            }

             else if(String.valueOf(dob) == null){

                 Toast.makeText(getApplicationContext(), "Please Provide Some Input", Toast.LENGTH_SHORT).show();
             }

            else{


                dob = Integer.parseInt(String.valueOf(inAge.getText()));
                currentYear.setText("Your Curret Year is :- " + year);
                yourYear.setText("Your Birth Year is :- "+ dob);

            int a = year-dob;

            finalAns.setText("Your Age is :- " + a);

            inAge.setText("");

            }



        }
    });

上面的代码是按钮点击。请提供一些解决方案

我也尝试将 editText1.getText().toString.trim().lenght()==0 置于 if 条件下,但这也没有用,应用程序崩溃了。

【问题讨论】:

    标签: android validation events buttonclick


    【解决方案1】:

    在按钮点击列表器上试试这个

    calcAge.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (yourEdittext.getText().toString().equals("")) {
                        yourEdittext.setError(getString("filed can't be empty"));
                        yourEdittext.requestFocus();
                        Toast.makeText(getApplicationContext(), "Please Provide Some Input", Toast.LENGTH_SHORT).show();
                    }
    
    
                }
            });
    

    【讨论】:

    • @MustakimKhalifa 不客气。不要忘记投票并将其中一个答案标记为已接受,以便其他人清楚您的问题不需要更多答案。
    【解决方案2】:

    使用这个:

    String dob = yourEditText.getText().toString();
    

    然后像这样检查它:

    if (TextUtils.isEmpty(dob)) {
                //show toast
            }
    

    【讨论】:

      【解决方案3】:

      你必须像这样进行验证:

       doneDetails.setOnClickListener(new View.OnClickListener() {
                          @Override
                          public void onClick(View v) {
                              if(validationDetails()){
                              //If get all data do Action
                              }else{
                                  // Toast.makeText(getApplicationContext(),"Field Missing",Toast.LENGTH_SHORT).show();
                              }
                          }
      

      这是验证部分方法:

       private boolean validationDetails() {
      
                          if (userNameET.getText().toString().isEmpty()) {
                              userNameET.setError("Enter Patient Name");
                              return false;
                          }
                          if (ageET.getText().toString().isEmpty()) {
                              ageET.setError("Enter Age ");
                              return false;
                          }
                          if (gender.getSelectedItem().toString().isEmpty()) {
                              Toast.makeText(getApplicationContext(),"Select Gender",Toast.LENGTH_SHORT).show();
                              return false;
                          }
                          return true;
                      }
      

      【讨论】:

        【解决方案4】:

        单击按钮时,您首先检查 dob 是否大于一年。这是不正确的。首先,检查 dob 是否为 null 或为空。然后检查是否大于年份

        If (dob == null && dob.isEmplty){
          Toast.makeText(getApplicationContext(), "Please Provide Some Input", Toast.LENGTH_SHORT).show();
        } else if(dob > year){
          Toast.makeText(getApplicationContext(), "Provide valid Input", Toast.LENGTH_SHORT).show();
        } else {
        //do what ever you want
        }
        

        【讨论】:

          【解决方案5】:

          点击按钮试试这个:

          if ( yourEditText.getText().toString().equal("")) {
                     Toast.makeText(getApplicationContext(), "Please Give Some Input", Toast.LENGTH_SHORT).show();
              }
          

          【讨论】:

            猜你喜欢
            • 2018-02-16
            • 1970-01-01
            • 1970-01-01
            • 2014-12-22
            • 1970-01-01
            • 2018-10-27
            • 1970-01-01
            • 1970-01-01
            • 2010-10-14
            相关资源
            最近更新 更多