Android的:如何从sqlite的总结实际值? [英] Android: how to sum real values from Sqlite?

查看:218
本文介绍了Android的:如何从sqlite的总结实际值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下code,以获得真正的价值的总和(存储在一个SQLite数据库的债务金额:

I've got the following code to get a sum of real values (debt amounts stored in an SQlite DB:

public double getsumdebt() {
        Cursor mCursor = db.rawQuery("SELECT SUM(CurrentAmount) FROM tblDebts", null);
        if(mCursor.moveToFirst()) {
        return mCursor.getDouble(0);
    }
    return mCursor.getDouble(0);
    }

我想返回所有值的总和,在CurrentAmount列和一个TextView显示它:

I am trying to return the sum of all the values in the "CurrentAmount" column and display it in a textview:

 DbAdapter db2 = new DbAdapter(this);
 double sum= new Double(db2.getsumdebt());
 //sum = db2.getsumdebt();
  bar.setText("Progress: "+currencysymbol +current +" / " + currencysymbol + sum);

然而,当我运行在模拟器中的应用程序,我得到发射过程中强行关闭,随着DDMS日志以下内容:

however, when I run the app in the emulator, I get a Force close during launch, with the following in the DDMS log:

19 09-26:01:19.098:ERROR / AndroidRuntime(677):致命异常:主要
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):了java.lang.RuntimeException:无法启动活动ComponentInfo {com.evanrich.android.debtdestroyer / com.evanrich.android.debtdestroyer.mainActivity}的java.lang 。空指针异常
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):在android.app.ActivityThread.access $ 2300(ActivityThread.java:125)
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2033)
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):在android.os.Handler.dispatchMessage(Handler.java:99)
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):在android.os.Looper.loop(Looper.java:123)
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):在android.app.ActivityThread.main(ActivityThread.java:4627)
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):在java.lang.reflect.Method.invokeNative(本机方法)
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):在java.lang.reflect.Method.invoke(Method.java:521)
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):在dalvik.system.NativeStart.main(本机方法)
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):致:显示java.lang.NullPointerException
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):在com.evanrich.android.debtdestroyer.database.DbAdapter.getsumdebt(DbAdapter.java:106)
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):在com.evanrich.android.debtdestroyer.mainActivity.onCreate(mainActivity.java:73)
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
  09-26 19:01:19.098:ERROR / AndroidRuntime(677):11 ...更多

09-26 19:01:19.098: ERROR/AndroidRuntime(677): FATAL EXCEPTION: main 09-26 19:01:19.098: ERROR/AndroidRuntime(677): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.evanrich.android.debtdestroyer/com.evanrich.android.debtdestroyer.mainActivity}: java.lang.NullPointerException 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at android.os.Handler.dispatchMessage(Handler.java:99) 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at android.os.Looper.loop(Looper.java:123) 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at android.app.ActivityThread.main(ActivityThread.java:4627) 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at java.lang.reflect.Method.invokeNative(Native Method) 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at java.lang.reflect.Method.invoke(Method.java:521) 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at dalvik.system.NativeStart.main(Native Method) 09-26 19:01:19.098: ERROR/AndroidRuntime(677): Caused by: java.lang.NullPointerException 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at com.evanrich.android.debtdestroyer.database.DbAdapter.getsumdebt(DbAdapter.java:106) 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at com.evanrich.android.debtdestroyer.mainActivity.onCreate(mainActivity.java:73) 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 09-26 19:01:19.098: ERROR/AndroidRuntime(677): ... 11 more

它看起来像它的无法总结存储在数据库中的实际值。谁能帮我?

It looks like it's not able to sum the real values stored in the DB. Can anyone help me?

仅供参考,这是我的表的构造:

FYI, this is my table constructor:

private static final String DATABASE_CREATE =
    "CREATE TABLE IF NOT EXISTS tblDebts (_id integer primary key autoincrement, "
    + "Debt text not null, StartingAmount real, CurrentAmount real, " 
    + "InterestRate real, DueDate integer, MinimumPayment real );";

感谢。

推荐答案

您有一个NPE

19:01:19.098:ERROR / AndroidRuntime(677):09-26显示java.lang.NullPointerException 19:产生的原因01:19.098:ERROR / AndroidRuntime(677):在com.evanrich.android.debtdestroyer.database .DbAdapter.getsumdebt(DbAdapter.java:106)09-26

19:01:19.098: ERROR/AndroidRuntime(677): Caused by: java.lang.NullPointerException 09-26 19:01:19.098: ERROR/AndroidRuntime(677): at com.evanrich.android.debtdestroyer.database.DbAdapter.getsumdebt(DbAdapter.java:106) 09-26

这是行106?

这篇关于Android的:如何从sqlite的总结实际值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆