【问题标题】:How to calculate age in Android Application using edit text如何使用编辑文本计算 Android 应用程序中的年龄
【发布时间】:2019-03-24 19:56:35
【问题描述】:

我正在开发一个显示该地区特色酒吧的 Android 应用程序,我想确保使用我们应用程序的唯一用户是 21 岁以上。我使用编辑文本创建了一个登录/注册活动,并将输入到编辑文本中的信息发送到 mySQL 数据库。

我已经在 youtube/stack overflow/google 上搜索了有关这方面的帮助的教程,但我只找到了 datepicker 教程。我不确定如何使用编辑文本在我的项目中实施日期选择器教程。

这是我的 RegisterActivity.java 文件的一部分,我想在用户单击注册时验证数据。我已经想出了如何验证电子邮件/密码,但不知道如何在我的代码中添加日期差异。我还添加了名为....的 submitForm 函数。

我不确定输出应该是什么样子或如何在我的项目中实施年龄验证,因为我对使用 Android Studio 还是很陌生,并且我对如何最好地实施这一点的新想法等持开放态度进入我的项目。

这是我的 RegisterActivity.java 文件的一部分,我想在用户单击注册时验证数据。我已经想出了如何验证电子邮件/密码,但不知道如何在我的代码中添加日期差异。我还添加了名为....的 submitForm 函数。

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

                String email = signupInputEmail.getText().toString();
                String password = signupInputPassword.getText().toString();
                if (password.length()< 8){
                    signupInputPassword.setError("Your password must be at least 8 characters");
                }else if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
                    signupInputEmail.setError("You must enter a valid email address");
                } else {

                    submitForm();
                }

            }
        });

提交表单()

private void submitForm() {

        int selectedId = genderRadioGroup.getCheckedRadioButtonId();
        String gender;
        if(selectedId == R.id.female_radio_btn)
            gender = "Female";
        else
            gender = "Male";

        registerUser(signupInputName.getText().toString(),
                signupInputEmail.getText().toString(),
                signupInputPassword.getText().toString(),
                gender,
                signup_input_DOB.getText().toString());
    }

【问题讨论】:

标签: android android-layout android-edittext


【解决方案1】:

看来您要完成这项任务还有很长的路要走。您可以简单地使用 DatePicker (Android Date Picker Official Docs

并设置日期的选择范围,在 TextView 上设置选定的日期(由用户)。用于处理点击事件的用户界面。

创建接口。

public interface IOnItemClickListenerCountryStates {
    void onAgeClick(String Date);

}

【讨论】:

    【解决方案2】:

    将注册输入中的出生日期从字符串转换为日期,如下所示:

    String DOB = signup_input_DOB.getText().toString(); 
    
    Date dateOfBirth=new SimpleDateFormat("dd/MM/yyyy").parse(DOB);  
    

    然后将出生日期传递给计算年龄的方法:

    int age = currentDate.getYear() - dateOfBirth.getYear();
    

    【讨论】:

    • 仅仅从岁月中获取年龄是不够的。您还需要检查月份和日期。如果检查年龄是出于法律原因,您提供的答案将是错误的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多