在buttonclick事件

时间:2017-08-22 07:21:58

标签: android validation events buttonclick

我是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 in if condition但是也没有工作,应用只是崩溃。

5 个答案:

答案 0 :(得分: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();
                }


            }
        });

答案 1 :(得分:0)

使用此:

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

然后检查它:

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

答案 2 :(得分:0)

你必须做这样的验证:

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

答案 3 :(得分:0)

点击按钮尝试此操作:

b

答案 4 :(得分:0)

点击按钮,您首先检查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
}