database - 注册用户时的非静态方法错误
问题描述
这是我尝试将用户添加到数据库中的注册类。但是,静态和非静态方法存在错误。如果我将 .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();
}
解决方案
您获得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
}
}
}
推荐阅读
- c# - Net Core Identity 2.1 身份验证无法正常工作访问受保护的端点
- python - 使用 unittest 进行 Python Selenium 测试 - 驱动程序错误
- scala - 如何从 Spark DataFrame 中的 AWS S3 读取多个文件?
- azure-active-directory - Azure 所有者角色和共同管理员之间的区别
- python - 如何有效地比较日期时间对象
- javascript - 电子从 ipcMain 发送数据到 ipcRender
- javascript - Javascript - 围绕异步 WebSocket 构建异步接口
- python - python-elasticsearch:如何启用 curl 日志记录?
- sql-server - 获取值不为空的第一个条目 SQL Server 2012
- elasticsearch - kibana 中的 ElasticSearch 内存使用情况与 Windows 不匹配