2017-03-26 2 views
-3

SQLiteの列の合計を取得できませんでした。アプリはクラッシュし続けます。どんな助けもありがとう、ありがとう=)。ここに私のコードは私のDatabaseHelperと主な活動である:AndroidのSQLiteの列の合計

public class DatabaseOperator { 
    private DataManager dataManager; 
... 
    public int getTotalExpenses() 
{ 
    SQLiteDatabase database = dataManager.getReadableDatabase(); 
    Cursor cursor = database.rawQuery("SELECT SUM(" + Integer.valueOf(Expenses.C_TOTAL_PRICE) + ") FROM " + Expenses.TABLE, null); 
    cursor.moveToFirst(); 
    int i = cursor.getInt(0); 
    cursor.close(); 
    return i; 
} 

//MainActivity.class 
TextView textTotalExpenses; 
int totalExpenses; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

DatabaseOperator databaseOperator = new DatabaseOperator(this); 
textTotalExpenses = (TextView) findViewById(R.id.textTotalExpenses); 
totalExpenses = databaseOperator.getTotalExpenses(); 
textTotalExpenses.setText(totalExpenses); 

3月26日09:31:23.483 5818から5818/com.example.everydaybudgeting20 E/AndroidRuntime:致命的な例外:メイン プロセス:com.example.everydaybudgeting20 、PID:5818 java.lang.RuntimeException:アクティビティを開始できませんでしたComponentInfo {com.example.everydaybudgeting20/com.example.everydaybudgeting20.MainActivity}:java.lang.NumberFormatException:入力文字列: "totalPrice" android.app .ActivityThread.performLaunchActivity(ActivityThread.java:2665) android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)android.os.Handler.dispatchMessageでandroid.app.ActivityThread $ H.handleMessage(ActivityThread.java:1477) (Handler.java:102)でandroid.app.ActivityThread.-wrap12で(ActivityThread.java) android.os.Looper.loop(Looper.java:154) android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(ネイティブメソッド) at com。 android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) によって引き起こされる:java.lang.NumberFormatException:For文字列を入力: "totalPrice" java.lang.Integer.parseInt(Integer.java:521) でjava.lang.Integer.valueOf(Integer.java:611) at com.example.everydaybudgeting20.DatabaseOperator.getTotalExpenses( android.app.Instrumentation.callActivityOnCreateでandroid.app.Activity.performCreateでcom.example.everydaybudgeting20.MainActivity.onCreate(MainActivity.java:76) (Activity.java:6679) (AT DatabaseOperator.java:229) Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:272) 6) android.app.ActivityThread.-wrap12(ActivityThread.java) (android.app.ActivityThread)$ H.handleMessage(ActivityThread.java:1477) (android.os.Handler.dispatchMessage(Handler.java:102)) )android.os.Looper.loop(Looper.java:154)の (android.app.ActivityThread.main(ActivityThread.java:6119) 、java.lang.reflect.Method.invoke(ネイティブメソッド) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

+2

ログキャストエラー –

+0

を投稿してください。 –

+0

あなたのcolumeの名前は何ですか? –

答えて

1

自分で修正しました。あなたのすべての協力に感謝します!

public int getTotalExpenses() 
{ 
    int total = 0; 
    SQLiteDatabase database = dataManager.getReadableDatabase(); 
    Cursor cursor = database.rawQuery("SELECT SUM("+ Expenses.C_TOTAL_PRICE + ") FROM " + Expenses.TABLE, null); 
    if (cursor.moveToFirst()) 
    { 
     total = cursor.getInt(0); 
    } 
    while (cursor.moveToNext()); 
    return total; 
} 
関連する問題