Я только что создал некоторый код после урока, моя программа создает базу данных, которая все хорошо, но когда я нажимаю кнопку, которую я назначил для ввода данных в мою базу данных, это не так.Вот код
public class MainActivity extends AppCompatActivity {
Button homeToRegister;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SQLclass con = new SQLclass(this);
homeToRegister = findViewById(R.id.home_register);
homeToRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, register.class));
}
});
}
}
Это основная деятельность.
public class SQLclass extends SQLiteOpenHelper {
private static final String DB_NAME = "uni_db";
private static int VERSION = 1;
SQLiteDatabase database;
public SQLclass(Context context) {
super(context, DB_NAME, null, VERSION);
database = getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase database) {
final String CREATETABLEUSER = "CREATE TABLE IF NOT EXISTS "+
UniqueContract.User.TABLE_NAME+"("+
UniqueContract.User.SID+" INTEGER PRIMARY KEY autoincrement, "+
UniqueContract.User.FN+" varchar(45), "+
UniqueContract.User.SN+" varchar(45), "+
UniqueContract.User.EM+" varchar(45), "+
UniqueContract.User.GROUP+" varchar(45), "+
UniqueContract.User.Password+" varchar(45),"+
"FOREIGN KEY (" +UniqueContract.User.GROUP+ " )REFERENCES _group (_group));";
database.execSQL(CREATETABLEUSER);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void register(String fn, String sn, String pw, String group, String em){
ContentValues cv = new ContentValues();
cv.put(UniqueContract.User.FN, fn);
cv.put(UniqueContract.User.SN, sn);
cv.put(UniqueContract.User.EM, em);
cv.put(UniqueContract.User.GROUP, group);
cv.put(UniqueContract.User.Password, pw);
SQLiteDatabase db = getWritableDatabase();
db.close();
}
}
Это класс, в котором я создаю свою базу данных и помещаю свои данные в базу данных.
public class register extends AppCompatActivity {
EditText fn, sn, em, group, pw;
Button register;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
fn = findViewById(R.id.et_reg_fn);
sn = findViewById(R.id.et_reg_sn);
em = findViewById(R.id.et_reg_em);
pw = findViewById(R.id.et_reg_pw);
group = findViewById(R.id.et_reg_group);
register = findViewById(R.id.btn_reg_register);
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SQLclass con = new SQLclass(register.this);
con.register(fn.getText().toString(), sn.getText().toString(), pw.getText().toString(), em.getText().toString(), group.getText().toString());
}
});
}
}
Здесь класс регистра будет выполнять свои функции.Поэтому при клике на нем должны храниться введенные данные.
public final class UniqueContract {
private UniqueContract(){}
public static class User{
public static final String TABLE_NAME = "User";
public static final String FN = "fn";
public static final String SN = "sn";
public static final String EM = "em";
public static final String GROUP = "_group";
public static final String Password = "pw";
public static final String SID = "sid";
}
}