Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的数据库不是';t接收我输入到Android Studio的数据_Java_Android_Android Studio - Fatal编程技术网

Java 我的数据库不是';t接收我输入到Android Studio的数据

Java 我的数据库不是';t接收我输入到Android Studio的数据,java,android,android-studio,Java,Android,Android Studio,我刚刚在一个教程之后创建了一些代码,我的程序创建了一个数据库,这一切都很好,但是当我单击我指定的按钮将数据输入到我的数据库时,它没有这样做。这是代码 public class MainActivity extends AppCompatActivity { Button homeToRegister; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreat

我刚刚在一个教程之后创建了一些代码,我的程序创建了一个数据库,这一切都很好,但是当我单击我指定的按钮将数据输入到我的数据库时,它没有这样做。这是代码

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

    }
}
这是register类执行其函数的地方。因此,点击它应该存储输入的数据

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";

    }
}
SQLclass
类的
register()
方法中,在此行之后:

SQLiteDatabase db = getWritableDatabase();
您忘记插入值:

db.insert(UniqueContract.User.TABLE_NAME, null, cv);