java - 仅当使用 Sqlite 数据库选中复选框时,如何将数据添加到另一个表?- android studio

标签 java android windows android-studio

我为学生出勤应用程序创建了一个注册 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/

相关文章:

android - 什么是modal selection选择模式?

windows - 在 Windows 上开发 -> 在虚拟机上部署?

c++ - 从 win32 应用程序运行外部 exe

windows - 在 Windows 批处理文件中将反斜杠更改为正斜杠

java - 理解两个排序数组的中位数算法

java - iFrame 中的超时问题

java - log4j API中FileAppender的疑问

java - Java优先级队列应该如何工作?

android - 单击后 SeekBar 拇指消失

android - 如何以编程方式锁定 Chromebook?