繁体   English   中英

如何将单个 SQLite 数据显示到 textview 中?

[英]How to display single SQLite data into textview?

我想从现有数据库中检索金额并将其显示在 TextView 中。

我已经创建了数据库。 但是当我尝试获取和显示金额时,我的应用程序不断崩溃。

/数据库助手.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 中的转换的知识,以便您了解转换行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM