我的数据库(显示在桌面上的信息)连接到按钮。单击它们时,表格应显示信息。数据库有效,但这是捕手:当我从测试中输入信息时,它可以工作。但是如果数据库无法加载,数据库会崩溃。这是代码:
rentD.open();
Log.d(TAG, "OPENING RENT DATABASE...");
String rentData = rentD.getData();
billAmount.setText("Total: " + nf.format(rentD.getAmountTotal()));
Log.d(TAG, "CLOSING RENT DATABASE...");
rentD.close();
Log.d(TAG, "RENT DATABASE CLOSED");
dataResults.setText(rentData);
所以每次点击RENT按钮,我都会被迫关闭。进一步观察后,我发现的问题与:
billAmount... nf.format(rentD.getAmountTotal()));
以货币格式显示金额。因此,如果我用String变量替换“rentD.getAmountTotal()”,数据库就可以正常工作。这是我从LogCat收到的错误:
10-26 23:53:40.764: DEBUG/DEBUG(14999): OPENING RENT DATABASE...
10-26 23:53:40.764: DEBUG/AndroidRuntime(14999): Shutting down VM
10-26 23:53:40.764: WARN/dalvikvm(14999): threadid=1: thread exiting with uncaught exception (group=0x4001d5a0)
同样,问题似乎是将尚不存在的数据传递到textview中。 我的最终结果是让程序从没有数据开始,这样用户就可以进入填充表的活动。有什么建议吗?
答案 0 :(得分:0)
根据您的评论,我建议您从DecimalFormat
删除getAmountTotal()
,因为它没有任何用处(您没有使用format()
的返回值),而是使用此代替:
public double getAmountTotal() {
Cursor cursor = ourRDatabase.rawQuery("SELECT SUM(RENT_AMOUNT) FROM rentTable", null);
if (cursor.moveToFirst()) {
return cursor.getDouble(0);
} else {
return 0; // or another default value of your choice
}
}