如何获取Android中游标检索值的值之和

如何获取Android中游标检索值的值之和,android,Android,我使用下面给出的查询从DB中检索了一些值 public Cursor getcredittranscation(String date) { String sql="SELECT A.Acc_No,A.Cust_Name, T.Trans_Amnt FROM TransactionTable " + "T LEFT JOIN AccMaster A on A.Acc_ID = T.Acc_ID " + "WHERE T.Trans_Date =

我使用下面给出的查询从DB中检索了一些值

public Cursor getcredittranscation(String date)

{

String sql="SELECT A.Acc_No,A.Cust_Name, T.Trans_Amnt FROM TransactionTable "
            + "T LEFT JOIN AccMaster A on A.Acc_ID = T.Acc_ID "
            + "WHERE T.Trans_Date =? AND T.Trans_Type=? ORDER BY  T.Entry_Time asc";
Cursor cursor = db.rawQuery(sql, new String[]{date, "credit"});

return cursor;
}
try{

            db.open();
            Cursor c = db.getdebittranscation(temp);

            if (c.moveToFirst()) {
                do {
                    DisplayDebitDetails(c);
                    debittotal(c);
                } while (c.moveToNext());
            }
            db.close();
            }catch (Exception e) {
                // TODO: handle exception
                Log.e("Retrive Debit Error ", " "+e.getMessage());
            }
private void DisplayDebitDetails(Cursor c) {

            String tempdebit = debitView.getText().toString() + "  ";
            tempdebit= " \t"+tempdebit+ "\n\t" +c.getString(0) + "\t\t\t" 
                            + c.getString(1) + "\t\t\t" + c.getString(2);
                debitView.setText(tempdebit);

                Log.e("debit", "Acc No :"+c.getString(0) +"Name :"+c.getString(1)+ "Trans Amnt :"+c.getString(2));
            }
        }
        private void debittotal(Cursor c){

   int tmp = Integer.parseInt(debiTotalView.getText().toString()+" ");
            tmp = +tmp+Integer.parseInt(c.getString(2));
            debiTotalView.setText(tmp);
在主要活动中,我想以报告的形式展示这些结果。活动代码如下所示

public Cursor getcredittranscation(String date)

{

String sql="SELECT A.Acc_No,A.Cust_Name, T.Trans_Amnt FROM TransactionTable "
            + "T LEFT JOIN AccMaster A on A.Acc_ID = T.Acc_ID "
            + "WHERE T.Trans_Date =? AND T.Trans_Type=? ORDER BY  T.Entry_Time asc";
Cursor cursor = db.rawQuery(sql, new String[]{date, "credit"});

return cursor;
}
try{

            db.open();
            Cursor c = db.getdebittranscation(temp);

            if (c.moveToFirst()) {
                do {
                    DisplayDebitDetails(c);
                    debittotal(c);
                } while (c.moveToNext());
            }
            db.close();
            }catch (Exception e) {
                // TODO: handle exception
                Log.e("Retrive Debit Error ", " "+e.getMessage());
            }
private void DisplayDebitDetails(Cursor c) {

            String tempdebit = debitView.getText().toString() + "  ";
            tempdebit= " \t"+tempdebit+ "\n\t" +c.getString(0) + "\t\t\t" 
                            + c.getString(1) + "\t\t\t" + c.getString(2);
                debitView.setText(tempdebit);

                Log.e("debit", "Acc No :"+c.getString(0) +"Name :"+c.getString(1)+ "Trans Amnt :"+c.getString(2));
            }
        }
        private void debittotal(Cursor c){

   int tmp = Integer.parseInt(debiTotalView.getText().toString()+" ");
            tmp = +tmp+Integer.parseInt(c.getString(2));
            debiTotalView.setText(tmp);
检索和查看所有值是正常的。。。但是我需要字符串(2)中所有值的总和。方法debittotal(光标c)中给出了这一点。那部分有什么错误??我没有得到总数

您可以使用getCount()方法


尝试此操作并确保
DebittolView.getText().toString()
不是空白或null

最初该字段值必须为0,否则它将为
无效int
值提供
NumberFormatException

替换

int tmp = Integer.parseInt(debiTotalView.getText().toString()+" ");
            tmp = +tmp+Integer.parseInt(c.getString(2));
            debiTotalView.setText(tmp);


int records=c.getCount()它将返回记录总数。如果为0,则没有记录指向游标。游标中的记录数将超过0。不要忘了
c.moveToFirst()
i如果条件满足,请将其放入内部。是否不需要记录?或从DB检索到的所有值之和?检索到的并非所有值之和可能重复。仅字符串(2)中的值。@Yograjshindew您得到的结果(总计)是什么?我只想要字符串(2)中的值的总和。这是一列!!!检索到的单列中的项目数与检索到的光标数相同!!!!!!!!!!!!!!!!!!!!