簡體   English   中英

獲取sqlite列錯誤的總和

[英]getting sum of sqlite column error

為什么我會收到這樣的錯誤? 我想在textview和toast上顯示我的sqlite列Fat的總和,以便我知道它正在運行,但是顯示錯誤。

android.content.res.Resources$NotFoundException: String resource ID
#0x7b
                      at android.content.res.Resources.getText(Resources.java:299)
                      at android.support.v7.widget.ResourcesWrapper.getText(ResourcesWrapper.java:52)
                      at android.widget.TextView.setText(TextView.java:4132)
                      at jm.myapplication.Main.MainActivity.totalFat(MainActivity.java:169)
                      at jm.myapplication.Main.MainActivity.onClick(MainActivity.java:498)
                      at android.view.View.performClick(View.java:4780)
                      at android.view.View$PerformClick.run(View.java:19866)
                      at android.os.Handler.handleCallback(Handler.java:739)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:135)
                      at android.app.ActivityThread.main(ActivityThread.java:5254)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:372)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

這段代碼在我的mainactivity類上

public void totalFat()
    {
        repo repo = new repo(MainActivity.this);
        int i = repo.totalFatrepo();
        tvtotal.setText(i);
        Toast.makeText(getApplicationContext(),
                i, Toast.LENGTH_LONG)
                .show();

    }

    @Override
        public void onClick(View view) {
            if (view == findViewById(R.id.water)) {
                totalFat();
            }
            }

雖然這是我的回購

public int totalFatrepo(){

        SQLiteDatabase db = dbHelper.getWritableDatabase();
        String query = "SELECT SUM(Fat) FROM " + breakfast.TABLE;
        Cursor c = db.rawQuery(query, null);
        c.moveToFirst();
        int i=c.getInt(0);

        return i;

    }

如果查看堆棧跟蹤,您會發現問題不在於數據庫查詢,而在於如何將文本設置為TextView。 如果將整數傳遞給tvtotal.setText(i)則它將期望使用資源ID整數( R.string.some_text中的R.string.some_text)。

像下面這樣調用它,以便它將觸發另一個以String為參數的setText方法:

tvtotal.setText(""+i);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM