我为学生出勤应用程序创建了一个注册 Activity ,只有选中“教师复选框”时,教师才会注册。教师信息应添加到教师表中。如果未选中该复选框,则默认情况下,信息将输入到学生表中。所以 1 个数据库和 2 个表。
This is the register activity:
这是数据库帮助程序代码,仅当在 insertData 方法中选中教师复选框时,我才想将数据添加到教师表中。但我不知道如何执行此操作。我是 android studio 的新手。
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME ="Register.db";
public static final String TABLE_STUDENT ="Register_student";
public static final String TABLE_FACULTY ="Register_faculty";
public static final String COL_1 ="Name";
public static final String COL_2 ="Username";
public static final String COL_3 ="Password";
private static final String CREATE_TABLE_STUDENT = "CREATE TABLE "
+ TABLE_STUDENT + "(" + COL_1
+ " TEXT," + COL_2 + "TEXT," + COL_3
+ " TEXT" + ")";
private static final String CREATE_TABLE_FACULTY = "CREATE TABLE "
+ TABLE_FACULTY + "(" + COL_1
+ " TEXT," + COL_2 + "TEXT," + COL_3
+ " TEXT" + ")";
public DatabaseHelper(Context context) {
super(context,DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_STUDENT );
db.execSQL(CREATE_TABLE_FACULTY);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_STUDENT);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_FACULTY);
onCreate(db);
}
public void insertData(String name, String username, String password)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_1,name);
contentValues.put(COL_2,username);
contentValues.put(COL_3, password);
db.insert(TABLE_STUDENT,null,contentValues);
}
}
我的register.java页面
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.content.Intent;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
public class register extends AppCompatActivity {
Button register;
CheckBox faculty;
EditText editName, editUName, editPass;
DatabaseHelper myDB;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
myDB = new DatabaseHelper(this);
editName = (EditText) findViewById(R.id.editText3);
editUName = (EditText) findViewById(R.id.editText7);
editPass = (EditText) findViewById(R.id.editText5);
faculty = (CheckBox) findViewById(R.id.checkBox38);
register = (Button) findViewById(R.id.button2);
register();
}
public void register() {
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isInserted=
myDB.insertData(editName.getText().toString(),
editUName.getText().toString(),
editPass.getText().toString(), faculty.isChecked());
if(isInserted==true)
{
Toast.makeText(getApplicationContext(), "Data added",
Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getApplicationContext(), "Data not added",
Toast.LENGTH_SHORT).show();
}
Intent i = new Intent(register.this, login.class);
startActivity(i);
Toast.makeText(getApplicationContext(), "You have been
registered", Toast.LENGTH_SHORT).show();
}
});
}
}
最佳答案
如果未选中复选框,则将整数标志设置为 0
;如果选中复选框,则将整数标志设置为 1
。
将此标志发送到 insertData()
函数,如下所示:
public void insertData(String name, String username, String password, int flag)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_1,name);
contentValues.put(COL_2,username);
contentValues.put(COL_3, password);
if(flag==0)
{
db.insert(TABLE_STUDENT,null,contentValues);
}
else if(flag==1)
{
db.insert(TABLE_FACULTY,null,contentValues);
}
}
关于java - 仅当使用 Sqlite 数据库选中复选框时,如何将数据添加到另一个表?- android studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36742646/