首页 > 解决方案 > 注册用户时的非静态方法错误

问题描述

这是我尝试将用户添加到数据库中的注册类。但是,静态和非静态方法存在错误。如果我将 .addUser 设为静态,则 .getWritableDatabase() 会显示错误。

我该如何解决?

这是 DatabaseHelper 类中的 addUser 方法:

public void addUser(User user) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(COLUMN_USER_NAME, user.getName());
    values.put(COLUMN_USER_EMAIL, user.getEmail());
    values.put(COLUMN_USER_PASSWORD, user.getPassword());

    db.insert(TABLE_USER, null, values);
    db.close();
}

标签: databasesqliteregistration

解决方案


您获得DatabaseHelper类的实例并使用非静态方法。

例如

public Registration extends AppCompatActivity {

    DatabaseHelper mDBHelper; //Declare the DatabaseHelper object

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_layout);
        mDBHelper = new DatabaseHelper(this); //<<<< Instantiate mDBHelper
        .........

        public void onClick(View v) {
            ........
            } else {
                mDBHelper.adduser(user); //<<<< Use the DatabaseHelper instance 
            }
        }
}

推荐阅读