这很奇怪。我在表单中插入电子邮件,密码和联系信息(电话号码)。接下来,我想将这些值存储在ContentValues上。但是它们是空的。
这是我的代码。
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
Button loginButton;
Button signUpButton;
Button createAccountBtn;
ViewFlipper viewFlipper;
EditText etEmail;
EditText etPassword;
EditText etContact;
String email;
String contact;
String password;
boolean clicked = false;
ContentValues values;
@Override
public void onCreate(Bundle instanceState) {
super.onCreate(instanceState);
setContentView(R.layout.content_main);
loginButton = (Button)findViewById(R.id.bt_login);
signUpButton = (Button)findViewById(R.id.bt_signup);
createAccountBtn = (Button)findViewById(R.id.bt_create);
viewFlipper = (ViewFlipper)findViewById(R.id.view_flipper);
etEmail = (EditText)findViewById(R.id.et_email);
etPassword = (EditText)findViewById(R.id.et_password);
etContact = (EditText)findViewById(R.id.et_phone);
email = etEmail.getText().toString();
if(!email.matches("[a-zA-Z0-9._-]+@[a-z]+.[a-z]+")) {
etEmail.setError("Invalid Email Address");
}
password = etPassword.getText().toString();
if(!password.matches("[a-zA-Z0-9._-]")) {
etPassword.setError("Invalid Password");
}
contact = etContact.getText().toString();
loginButton.setOnClickListener(this);
signUpButton.setOnClickListener(this);
createAccountBtn.setOnClickListener(this);
//updateTheViewBasedOnTag();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_login:
loginButton.setTag(true);
signUpButton.setTag(false);
//updateTheViewBasedOnTag();
viewFlipper.setDisplayedChild(0);
break;
case R.id.bt_signup:
signUpButton.setTag(true);
loginButton.setTag(false);
//updateTheViewBasedOnTag();
viewFlipper.setDisplayedChild(1);
//signUpButton.setBackgroundColor(Color.GREEN);
//Toast.makeText(this,"Button click",Toast.LENGTH_SHORT).show();
break;
case R.id.bt_create:
values = new ContentValues();
values.put("email",email);
values.put("pass",password);
values.put("contact",contact);
DetailsDb detailsDb = new DetailsDb(this);
Cursor cursor = detailsDb.query();
if(cursor.getCount() > 0){
Toast.makeText(this,"Ooops user exists",Toast.LENGTH_SHORT).show();
}else{
detailsDb.insert(values);
Toast.makeText(this,"You are registered",Toast.LENGTH_SHORT).show();
}
break;
}
}
}
我错过了什么?
谢谢,
西奥。
答案 0 :(得分:3)
您正在int** p = create(2);
的edittexts上调用getText()
。那时候他们没有数据。
将onCreate()
电话移至您的点击监听器。