adopterとdonorという2つのテーブルがデータベースに作成されます。 「ドナーとして」ラジオボタンをクリックすると、登録フォームの値が正しく機能しているドナーテーブルに保存されます。問題は、「アダプターとして」ラジオ・ボタンがクリックされたときに値がドナー・テーブルに保管され、ID(主キー)のみがアダプター・テーブルに入力されている場合です。ここで「はい」ラジオボタンは「ドナーとして」、「いいえ」ラジオボタンは「アダプターとして」です。私はあなたの助けが必要です。条件はあなたがこのためのように設定する必要がある場合は、あなたの最後の参照ラジオボタンの値に基づいてsqliteデータベースの複数のテーブルに値を格納
findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final String email = mail.getText().toString();
final String name1 = name.getText().toString();
final String pass = password.getText().toString();
final String pass1 = password1.getText().toString();
int id;
id = student.getCheckedRadioButtonId();
boolean check;
check = stud.isChecked();
if (!isValidName(name1)) {
name.setError("Invalid name");
}
if (isValidName(name1) && !isValidEmail(email)) {
mail.setError("Invalid Email");
}
if (isValidName(name1) && isValidEmail(email) && !isValidPassword(pass)) {
password.setError("Invalid password");
}
if (isValidName(name1) && isValidEmail(email) && isValidPassword(pass)) {
if (!isValidPassword(pass1)) {
password1.setError("Invalid password");
}
}
if (isValidPassword(pass) != isValidPassword(pass1)) {
password1.setError("The given passwords does not match ");
}
if (isValidName(name1) && isValidEmail(email) && isValidPassword(pass) && isValidPassword(pass) == isValidPassword(pass1) && (id == -1)) {
Toast toast;
toast = makeText(Register.this, "Click any one of the option", Toast.LENGTH_SHORT);
toast.show();
}
if (isValidName(name1) && isValidEmail(email) && isValidPassword(pass) && (id != -1) && isValidPassword(pass) == isValidPassword(pass1) && (check == false)) {
Toast msg1;
msg1 = makeText(Register.this, "You can not register without clicking this checkbox", Toast.LENGTH_SHORT);
msg1.show();
}
if (isValidName(name1) && isValidEmail(email) && isValidPassword(pass) && isValidPassword(pass) == isValidPassword(pass1) && (check == true) && (yes.isEnabled()==true)) {
Toast msg2;
msg2 = makeText(Register.this, "Step 1 of registration is completed", Toast.LENGTH_SHORT);
msg2.show();
Intent launch;
launch = new Intent(Register.this, donor.class);
startActivity(launch);
donor_insert(view);
if (isValidName(name1) && isValidEmail(email) && isValidPassword(pass) && isValidPassword(pass) == isValidPassword(pass1) && (check == true) && (no.isEnabled()==true)){
Toast msg3;
msg3 = makeText(Register.this, "Step 1 of registration is completed", Toast.LENGTH_SHORT);
msg3.show();
Intent adopter;
adopter = new Intent(Register.this, adopter.class);
startActivity(adopter);
adopter_insert(view);
}
}
}
});
}
private boolean isValidEmail(String email) {
String EMAIL_PATTERN = "^(?=.*[a-z]).(?=\\S+$).{4,}$";
Pattern pattern = Pattern.compile(EMAIL_PATTERN);
Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
private boolean isValidName(String name) {
String name1 = "^(?=.*[a-z]).{1,}$";
Pattern pattern1 = Pattern.compile(name1);
Matcher matcher1 = pattern1.matcher(name);
return matcher1.matches();
}
// validating password with retype password
private boolean isValidPassword(String pass) {
if (pass != null && pass.length() > 6) {
return true;
}
return false;
}
public void adopter_insert(View view) {
UserInputs adopt = new UserInputs(name.getText().toString(), mail.getText().toString(), password.getText().toString());
dbHandler.adopter_insert(adopt);
name.setText("");
mail.setText("");
password.setText("");
}
public void donor_insert(View view) {
UserInputs donate = new UserInputs(name.getText().toString(), mail.getText().toString(), password.getText().toString());
dbHandler.donor_insert(donate);
name.setText("");
mail.setText("");
password.setText("");
}
}
{ //Dbhandler.java
public DBhandler(Context context, String name,
SQLiteDatabase.CursorFactory factory, int version) {
super(context, DBNAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String create_table = ("CREATE TABLE " + TABLE + "("
+ COLUMN_ID1 + " INTEGER PRIMARY KEY," + COLUMN_NAME
+ " TEXT," + COLUMN_MAIL + " TEXT, " + COLUMN_PASSWORD + " BLOB " + ")");
db.execSQL(create_table);
String create_table1 = ("CREATE TABLE " + TABLE1 + "("
+ COLUMN_ID + " INTEGER PRIMARY KEY," + COLUMN_NAME
+ " TEXT," + COLUMN_MAIL + " TEXT, " + COLUMN_PASSWORD + " BLOB " + ")");
db.execSQL(create_table1);
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE);
onCreate(db);
db.execSQL("DROP TABLE IF EXISTS " + TABLE1);
onCreate(db);
}
public void adopter_insert(UserInputs inputs) {
ContentValues values = new ContentValues();
values.put(COLUMN_NAME, inputs.getName());
values.put(COLUMN_MAIL, inputs.getMail());
values.put(COLUMN_PASSWORD, inputs.getPass());
SQLiteDatabase db = this.getWritableDatabase();
db.insert(TABLE, null, values);
db.close();
}
public void donor_insert(UserInputs inputs) {
ContentValues values1 = new ContentValues();
values1.put(COLUMN_NAME, inputs.getName());
values1.put(COLUMN_MAIL, inputs.getMail());
values1.put(COLUMN_PASSWORD, inputs.getPass());
SQLiteDatabase db = this.getWritableDatabase();
db.insert(TABLE1, null, values1);
db.close();
}
}
}
'adopet_insert(view)'メソッド呼び出し。あなたの最後のif文と違反時に確認してください。 – Shailesh
申し訳ありませんが分かりません。あなたはプログラムのエラー部分だけを変更して送ってください。 – Monisha