android - 注册活动页面方法无法识别
问题描述
这是一个注册页面,包含几个字段,用于一个简单的 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);
}
}
解决方案
我认为您输入错误的方法名称,正确的方法是:
if (!inputValidation.isinputEditTextFilled(textInputEditTextName, textInputLayoutName, getString(R.string.error_message_name))){
return;
}
所以你现在必须替换所有的条件语句。
我怎么知道错误是我找到了您 4 小时前提出的问题并找到了您的 InputValidation 类代码
参考: 你的老问题
推荐阅读
- laravel - 图片不显示在浏览器 Laravel 5.4 上
- visual-studio-2015 - 在 Visual Studio 2015 中构建 openssl_1.0.2p 的问题
- python - 子进程参数列表长
- java - 如何管理通知推送系统
- c# - Excel-Dna C#如何从excel工作表中的选定范围中获取值
- java - 如何将 Java servlet 部署到服务器
- javascript - POSTMAN - 模拟服务器,在示例响应中使用变量
- javascript - 如何找到包含 javascript 属性的元素的 XPath?
- node.js - 更改续集时区
- c# - c#省略嵌套类型参数