android cursor 实例化,为什么Cursor放到带参数带返回值方法里就报错?
完整代码如下:
其中有大部分的代码被注释,那是可以成功运行的。
后来我想啊,游戏有好多种,但是需要统计的内容是一样的。
我就想传参 然后获得返回值的方式 来减少代码量啊。
但是把相关的查询代码放到 带参带返回值的方法中后 就报错了。
期间我debug了一下,发现 db = null 说明db的值没有哦。
所以我估计是db出了问题。
求各位大大看看有啥解决办法吧,谢谢!
package com.example.mscodescanner;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
import android.widget.Toast;
/**
* Created by jungege on 16/4/21.
*/
public class TicketsRecord extends AppCompatActivity{
//注册控件
private TextView mTv_TotalNum_Online; //中福在线 总张数
private TextView mTv_SurplusNum_Online; //中福在线 剩余张数
private TextView mTv_TotalValue_Online; //中福在线 总钱数
private TextView mTv_SurplusValue_Online; //中福在线 剩余钱数
//注册数据库
private DatabaseContext dbContext;
private SdCardDBHelper dbHelper;
private SQLiteDatabase db;
@Override
protected void onCreate( Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.record_layout);
init(); //初始化
statistical(); //执行统计
}
private void init() {
//实例化控件
mTv_TotalNum_Online = (TextView) findViewById(R.id.tv_TotalNum_Online);
mTv_SurplusNum_Online = (TextView) findViewById(R.id.tv_SurplusNum_Online);
mTv_TotalValue_Online = (TextView) findViewById(R.id.tv_TotalValue_Online);
mTv_SurplusValue_Online = (TextView) findViewById(R.id.tv_SurplusValue_Online);
//实例化数据库
dbContext = new DatabaseContext(TicketsRecord.this);
dbHelper = new SdCardDBHelper(dbContext);
db = dbHelper.getWritableDatabase(); //创建DB对象
}
private void statistical() {
//中福在线
// Cursor cursor_TotalNum = db.rawQuery("select * from Tickets where name = 0", null); //总张数
// Cursor cursor_SurplusNum = db.rawQuery("select * from Tickets where name = 0 and use = 1", null); //剩余张数
// Cursor cursor_TotalValue = db.rawQuery("select sum(price) from Tickets where name = 0", null); //总钱数
// Cursor cursor_SurplusValue = db.rawQuery("select sum(price) from Tickets where name = 0 and use = 1", null); //剩余钱数
//
// if (cursor_TotalNum.moveToFirst() && cursor_SurplusNum.moveToFirst() && cursor_TotalValue.moveToFirst() && cursor_SurplusValue.moveToFirst()){
//
// int count_TotalNum = cursor_TotalNum.getCount();
// int count_SurplusNum = cursor_SurplusNum.getCount();
// int count_TotalValue = cursor_TotalValue.getInt(0);
// int count_SurplusValue = cursor_SurplusValue.getInt(0);
//
// mTv_TotalNum_Online.setText(String.valueOf(count_TotalNum));
// mTv_SurplusNum_Online.setText(String.valueOf(count_TotalNum - count_SurplusNum));
// mTv_TotalValue_Online.setText(String.valueOf(count_TotalValue));
// mTv_SurplusValue_Online.setText(String.valueOf(count_TotalValue - count_SurplusValue));
//
// } else {
// mTv_TotalNum_Online.setText("没有记录");
// }
// //关闭游标
// cursor_TotalNum.close();
// cursor_SurplusNum.close();
// cursor_TotalValue.close();
// cursor_SurplusValue.close();
TicketsRecord hello = new TicketsRecord();
int wellcome = hello.statManage(0);
mTv_TotalNum_Online.setText(String.valueOf(wellcome));
}
//Statistical management
private int statManage(int name){
//Cursor cursor_TotalNum = db.rawQuery("select sum(price) from Tickets where name = ?", new String[]{String.valueOf(name)});
Cursor cursor_TotalNum = db.rawQuery("select sum(price) from Tickets where name = " + name, null); //总张数
cursor_TotalNum.moveToFirst();
int count_TotalNum = cursor_TotalNum.getColumnIndex("sum(price)");
cursor_TotalNum.close();
return count_TotalNum;
//return "欢迎您" + name + "!";
}
}
android cursor 实例化,为什么Cursor放到带参数带返回值方法里就报错?相关推荐
- C#多线程函数如何传参数和返回值
提起多线程,不得不提起 委托(delegates)这个概念. 我理解的委托就是 具有 同样参数和返回值 的函数的集合. 比如 public delegate void MyDelegate(int a ...
- Python | 基于参数和返回值的功能分类
There are following types of the functions based on their parameters and return values: 根据函数的参数和返回值, ...
- .net前台ajax,asp.net利用Ajax和Jquery在前台向后台传参数并返回值
1----------前台 首先需要 Jquer的包 下面是 $(function () { $('#txtUserName').blur(function () { var username = $ ...
- java 参数返回_Java基础---Java中带参数返回值方法的使用(四十)
Java 中带参带返回值方法的使用 如果方法既包含参数,又带有返回值,我们称为带参带返回值的方法. 例如:下面的代码,定义了一个 show 方法,带有一个参数 name ,方法执行后返回一个 Stri ...
- C#调用存储过程带输出参数或返回值分类(转)
C#调用存储过程带输出参数或返回值 分类: Asp.net MSSQL2014-05-26 14:02 330人阅读 评论(0) 收藏 举报 [csharp] view plaincopyprint? ...
- Java基础---Java中带参数返回值方法的使用(四十)
Java 中带参带返回值方法的使用 如果方法既包含参数,又带有返回值,我们称为带参带返回值的方法. 例如:下面的代码,定义了一个 show 方法,带有一个参数 name ,方法执行后返回一个 Stri ...
- 不显示参数名_第51p,万能参数与返回值,Python中函数的返回值
大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第51篇文章,第三阶段的课程:Python进阶知识:详细讲解Python中的函数(四)====>函数的参数与返回值(下篇). ...
- py6_Python 内置函数/普通自定义函数 及参数和返回值
################################################## 目录 活动简介 Python 函数参数 如何定义一个函数 示例定义一个无参函数 形参和实参的概念 ...
- php 函数返回值mixed,认识函数的类型、参数与返回值
函数的类型.参数与返回值 一.函数的基本语法语法 functionfunctionName(类型限定参数列表):返回值类型 { } 案例:计算两个数之和. functionsum(int$a,int$ ...
最新文章
- 2022-2028年中国农用塑料薄膜行业市场研究及前瞻分析报告
- There are 0 datanode(s) running and no node(s) are excluded in this operation.
- 我的Android进阶之旅------gt;Android中MediaRecorder.stop()报错 java.lang.RuntimeException: stop failed....
- C++实现各种选择排序(简单选择排序,堆排序)
- cad隐藏图层命令快捷键_cad快捷键f是什么命令?cad中f快捷键都有哪些?
- Can't use Subversion command line client:svn
- 亲戚的孩子说要寄养在我家,上学方便,怎么明确的拒绝?
- Debian 9 + Windows 10 双系统安装体验
- 物料分拣系统matlab仿真,基于PLC的物料分拣控制系统设计与仿真(含梯形图)
- 计算机键盘上fn键,键盘上的fn键有什么用?笔记本电脑键盘上的fn键作用大全
- API 夺命四连杀:接口如何设计?安全如何保证?签名如何实现?防重如何实现?...
- 2638: 黑白染色
- 计算机科学与技术以为舟,于哲舟-吉林大学计算机科学与技术学院
- nth-child 与 nth-of-type
- 计算机应用基础评价手册怎么填,《评价手册》填写说明(必填)
- 【Meetup预告】OpenMLDB+37手游:一键查收实时特征计算场景案例及进阶使用攻略
- 推荐几款简单的音视频编辑软件
- 你对信息系统项目管理师了解吗?值不值得考?
- 使用node+puppeteer破解验证码
- 迅雷All in区块链