2016-08-29 15 views
1

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(); 
} 

}

}

+0

'adopet_insert(view)'メソッド呼び出し。あなたの最後のif文と違反時に確認してください。 – Shailesh

+0

申し訳ありませんが分かりません。あなたはプログラムのエラー部分だけを変更して送ってください。 – Monisha

答えて

0

あなたのドナーがチェックされたら、最初のifが実行され、あなたのアダプターがあなたの2番目のチェックが実行されます。私はこれがあなたを助けてくれることを願っています。あなたのご採用をご比べてチェックされている場合ことをした後、あなたの挿入コードがその時点で初めて実行するたび声明あなたは違反に欠けているが、常にあなたの `doner_insert(ビュー)`メソッドを実行する場合は、あなたの最後に見ることができます

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); 
} 
+0

私はそれを得た!私の問題を解決してくれてありがとう。 – Monisha

関連する問題