如何将单个SQLite数据显示到textview中?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将单个SQLite数据显示到textview中?相关的知识,希望对你有一定的参考价值。
我想从现有数据库中检索数量并将其显示在TextView中。
我已经创建了数据库。但是当我尝试获取并显示金额时,我的应用程序会一直崩溃。
/database helper.Java/
public Cursor getBalance(String amount) {
SQLiteDatabase db = this.getReadableDatabase();
String selectQuery = "SELECT * FROM " + TABLE_USER_BALANCE + " WHERE "
+ KEY_AMOUTNT + " = " + amount;
Log.e(LOG, selectQuery);
Cursor c = db.rawQuery(selectQuery, null);
if (c != null)
c.moveToFirst();
Balance b = new Balance();
b.setAmount(c.getInt(c.getColumnIndex(KEY_AMOUTNT)));
return (Cursor) b;
}
仪表板类:
public void saveCallBack(Balance balance) {
DataBaseHelper dataBaseHelper = new DataBaseHelper(context);
Cursor cursor = dataBaseHelper.getBalance(DashBoard.email);
while (cursor.moveToNext()) {
String s_amount = "";
s_amount =
cursor.getString(cursor.getColumnIndex(DataBaseHelper.KEY_AMOUTNT));
Double amount = 0.0;
if (AppUtility.isNum(s_amount)) {
amount = Double.parseDouble(s_amount);
}
TextView Amount = findViewById(R.id.amount);
Amount.setText(String.valueOf(amount));
}
}
答案
你正在向Balance
施放Cursor
这是不可能的,因此你的应用程序将崩溃。您要么返回数据库Cursor
本身,要么返回Balance
对象。你已经创建了Balance
实例并在其中放置了一些值,所以我假设你的代码应该是这样的:
public Balance getBalance(String amount) {
...
Balance b = new Balance();
b.setAmount(c.getInt(c.getColumnIndex(KEY_AMOUTNT)));
return b;
}
我建议你学习一些关于Java的转换,这样你就会理解转换行为。
以上是关于如何将单个SQLite数据显示到textview中?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 SQLITE DATABASE 获取特定数据并在 TextView 中显示