首页 > 解决方案 > 注册活动页面方法无法识别

问题描述

这是一个注册页面,包含几个字段,用于一个简单的 Android 应用程序。即使在导入相应的模块和包后,确认密码变量和 IsInputEditTextFilled 方法也无法识别。
我能够通过使用导入语句来识别其他人。不确定是否需要再次定义它们,或者即使我已经多次重新阅读代码,这是否是一个案例错误。

这是无法识别的变量和方法的错误图像。

在此处输入图像描述

    package edu.spelman.spelfitscmail.spelfit.activities;


    import android.os.Bundle;
    import edu.spelman.spelfitscmail.spelfit.R;
    import android.support.design.widget.Snackbar;
    import android.support.design.widget.TextInputEditText;
    import android.support.design.widget.TextInputLayout;
    import android.support.v4.widget.NestedScrollView;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.AppCompatButton;
    import android.support.v7.widget.AppCompatTextView;
    import android.view.View;

    import edu.spelman.spelfitscmail.spelfit.helper.InputValidation;
    import edu.spelman.spelfitscmail.spelfit.model.User;
    import edu.spelman.spelfitscmail.spelfit.sql.DatabaseHelper;

    public class RegisterActivity extends AppCompatActivity implements View.OnClickListener{

        private final AppCompatActivity activity = RegisterActivity.this;

        private NestedScrollView nestedScrollView;

        private TextInputLayout textInputLayoutName;
        private TextInputLayout textInputLayoutEmail;
        private TextInputLayout textInputLayoutPassword;
        private TextInputLayout textInputLayoutConfirmPassword;

        private TextInputEditText textInputEditTextName;
        private TextInputEditText textInputEditTextEmail;
        private TextInputEditText textInputEditTextPassword;
        private TextInputEditText textInputEditTextConfirmPassword;

        private AppCompatButton appCompatButtonRegister;
        private AppCompatTextView appCompatTextViewLoginLink;

        private InputValidation inputValidation;
        private DatabaseHelper databaseHelper;
        private User user;

        @Override
        protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_register);
            getSupportActionBar().hide();

            initViews();
            initListeners();
            initObjects();
        }
        private void initViews(){
            nestedScrollView = (NestedScrollView) findViewById(R.id.nestedScrollView);

            textInputLayoutName = (TextInputLayout) findViewById(R.id.textInputLayoutName);
            textInputLayoutEmail = (TextInputLayout) findViewById(R.id.textInputLayoutEmail);
            textInputLayoutPassword = (TextInputLayout) findViewById(R.id.textInputLayoutPassword);
            textInputLayoutConfirmPassword = (TextInputLayout) findViewById(R.id.textInputLayoutConfirmPassword);

            textInputEditTextName = (TextInputEditText) findViewById(R.id.textInputEditTextName);
            textInputEditTextEmail = (TextInputEditText) findViewById(R.id.textInputEditTextEmail);
            textInputEditTextPassword = (TextInputEditText) findViewById(R.id.textInputEditTextPassword);
            textInputEditTextConfirmPassword = (TextInputEditText) findViewById(R.id.textInputEditTextConfirmPassword);


            appCompatButtonRegister = (AppCompatButton) findViewById(R.id.appCompatButtonRegister);
            appCompatTextViewLoginLink = (AppCompatTextView) findViewById(R.id.appCompatTextViewLoginLink);
        }
        private void initListeners(){
            appCompatButtonRegister.setOnClickListener(this);
            appCompatTextViewLoginLink.setOnClickListener(this);
        }
        private void initObjects(){
            inputValidation = new InputValidation(activity);
            databaseHelper = new DatabaseHelper(activity);
            user = new User();
        }
        @Override
        public void onClick(View v){
            switch(v.getId()){
                case R.id.appCompatButtonRegister:
                    postDataToSQLite();
                    break;
                case R.id.appCompatTextViewLoginLink:
                    finish();
                    break;
            }
        }
        private void postDataToSQLite(){
            if (!inputValidation.isInputEditTextFilled(textInputEditTextName, textInputLayoutName, getString(R.string.error_message_name))){
                return;
            }
            if (!inputValidation.isInputEditTextFilled(textInputEditTextEmail, textInputLayoutEmail, getString(R.string.error_message_email))){
                return;
            }
            if (!inputValidation.isInputEditTextEmail(textInputEditTextEmail, textInputLayoutEmail, getString(R.string.error_message_email))){
                return;
            }
            if (!inputValidation.isInputEditTextFilled(textInputEditTextPassword, textInputLayoutPassword, getString(R.string.error_message_password))){
                return;
            }
            if (!inputValidation.isInputEditTextMatches(textInputEditTextPassword, textInputEditTextConfirmPassword,
                    textInputLayoutConfirmPassword, getString(R.string.error_password_match))){
                return;
            }
            if (!databaseHelper.checkUser(textInputEditTextEmail.getText().toString().trim())){

                user.setName(textInputEditTextName.getText().toString().trim());
                user.setEmail(textInputEditTextName.getText().toString().trim());
                user.setPassword(textInputEditTextPassword.getText().toString().trim());

                databaseHelper.addUser(user);

                //Snackbar to show success message that record saved successfully
                Snackbar.make(nestedScrollView, getString(R.string.success_message), Snackbar.LENGTH_LONG).show();
                emptyInputEditText();

            }else {
                //Snackbar to show error message that record already exists
                Snackbar.make(nestedScrollView, getString(R.string.error_email_exists), Snackbar.LENGTH_LONG).show();
            }

        }
        private void emptyInputEditText(){
            textInputEditTextName.setText(null);
            textInputEditTextEmail.setText(null);
            textInputEditTextPassword.setText(null);
            textInputEditTextConfirmPassword.setText(null);

        }
    }

标签: androidandroid-studioandroid-activity

解决方案


我认为您输入错误的方法名称,正确的方法是:

if (!inputValidation.isinputEditTextFilled(textInputEditTextName, textInputLayoutName, getString(R.string.error_message_name))){
 return;
}

所以你现在必须替换所有的条件语句。

我怎么知道错误是我找到了您 4 小时前提出的问题并找到了您的 InputValidation 类代码

参考: 你的老问题


推荐阅读