Короче говоря, вы пытаетесь добавить сами текстовые поля в вашу базу данных, а не строки, которые вы создали.
String FullName = fullname.getText().toString().trim();
String Password = password.getText().toString().trim();
String Email = email.getText().toString().trim();
/* ... */
user.put("FName", fullname);
user.put("Email",email);
user.put("Password",password);
Я рекомендую принять некоторые соглашения об именах, чтобы предотвратить это. Я лично рекомендую <short-object-type><variable-name>
, записанный в camelCase
.
Button #button -> #btnRegister
Button #LoginBtn -> #btnLogin
TextField #fullname -> #txtFullName
TextField #email -> #txtEmail
TextField #password -> #txtPwd
Иногда бывает также полезно отличить guish частных переменных уровня объекта от локальных переменных, обычно добавляя m
(для моего) в начале имени:
mBtnRegister.setOnClickListener(...);
Button btnScripted = new Button(...);
Переменные следует указывать в camelCase
(или UPPER_SNAKE_CASE
для констант), а не в PascalCase
, чтобы они не были ошибочно определены как классы, интерфейсы и т. д. c. Вы можете увидеть это в действии, посмотрев на подсветку синтаксиса блоков кода StackOverflow.
String fullname = txtFullName.getText().toString().trim();
String password = txtPwd.getText().toString().trim();
String email = txtEmail.getText().toString().trim();
/* ... */
user.put("fname", fullname);
user.put("email", email);
// do not store passwords!