Моя база данных не получает данные, которые я ввожу Android Studio - PullRequest
0 голосов
/ 23 октября 2018

Я только что создал некоторый код после урока, моя программа создает базу данных, которая все хорошо, но когда я нажимаю кнопку, которую я назначил для ввода данных в мою базу данных, это не так.Вот код

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

    }
}

1 Ответ

0 голосов
/ 23 октября 2018

В register() метод класса SQLclass, после этой строки:

SQLiteDatabase db = getWritableDatabase();

вы забыли вставить значения:

db.insert(UniqueContract.User.TABLE_NAME, null, cv);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...