如何在Android的TextView中显示数据库存储的昵称?
解决SQLite昵称显示到TextView的问题
第一步:修正DatabaseHelper中的查询方法
你的displayNickname方法SQL语句存在语法错误,SELECT子句需要指定查询的列,且缺少FROM关键字,修正后代码如下:
Cursor displayNickname(){ String query = "SELECT " + COLUMN_NICKNAME + " FROM " + TABLE_NICKNAME + " WHERE " + COLUMN_ID + " = 1"; SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = null; if (db != null) { cursor = db.rawQuery(query, null); } return cursor; }
第二步:在Dashboard页面读取数据并显示
在onCreate方法中添加代码,通过Cursor获取数据库中的昵称,然后设置到TextView:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dashboard); DatabaseHelper DATABASE_NICKNAME = new DatabaseHelper(Dashboard.this); TextView nickname = findViewById(R.id.nickname); Cursor cursor = DATABASE_NICKNAME.displayNickname(); if (cursor != null && cursor.moveToFirst()) { // 从Cursor中取出昵称,索引0对应查询的COLUMN_NICKNAME列 String userNickname = cursor.getString(0); nickname.setText(userNickname); // 关闭Cursor释放资源 cursor.close(); } else { // 无数据时显示默认文本 nickname.setText("暂无昵称"); } }
注意事项
- 确保已成功插入ID为1的昵称数据,否则查询会返回空结果
- 必须关闭Cursor,避免内存泄漏
- 若需要读取最新插入的昵称而非固定ID=1的记录,可修改SQL为
SELECT " + COLUMN_NICKNAME + " FROM " + TABLE_NICKNAME + " ORDER BY " + COLUMN_ID + " DESC LIMIT 1
内容的提问来源于stack exchange,提问作者Astryugh
相关产品推荐
相关产品推荐

