@TianCheng 2016-04-30 08:10 采纳率: 100%
浏览 1219

关于安卓SQLiteOpenHelper.getDatabaseLocke的问题

小弟想要实现这样一个功能,在Fragment页面里面实现ListView显示,而ListView数据来源于数据库,加载ListView我写了一个Adapter,但是报错了,琢磨了好长时间也没解决,上论坛来求大神帮助,错误如下:
图片说明
首先在FragmentRecord里面写的加载适配器的语句:
在onActivityCreated里面写的initData();
private void initData() {
// TODO Auto-generated method stub
c.set(Calendar.DAY_OF_MONTH,1);//设置日历为当月的1号
String start = sdf.format(c.getTime());//获取时间之后格式化输出
c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));//设置日历为当月的最大天数
String end = sdf.format(c.getTime());//获取时间后格式化输出
tv01.setText(start+"至"+end);//将输出的时间填充进文本框
adapter=new FragmentRecordAdapter(null,this,start, end);//可能有问题
listView_data.setAdapter(adapter);

然后适配器FragmentRecordAdapter里面写的:
public FragmentRecordAdapter(Context context ,FragmentRecord fragmentrecord, String start,String end) {
// TODO Auto-generated constructor stub
this.f=fragmentrecord;

this.c=context;
adao2 = new AddDAO2(c,f);
cursor = adao2.queryAllDetail(start, end);
cursor.close();

关于数据库的继承与SQLiteOpenHelper类:
public class ActionDataHelper extends SQLiteOpenHelper {

 public static final String databese_name="FitnessNoteList.db";//数据库名称
public static final int version=1;//版本号,则是升级之后的,升级方法请看onUpgrade方法里面的判断

 public ActionDataHelper(Context context,FragmentRecord fragment){//构造函数,接收上下文作为参数,直接调用的父类的构造函数
    super(context,databese_name, null, version); //第三个参数CursorFactory指定在执行查询时获得一个游标实例的工厂类,设置为null,代表使用系统默认的工厂类 
}

 @Override//创建数据库当数据库首次创建时执行该方法,一般将创建表等初始化操作放在该方法中执行,重写onCreate方法,调用execSQL方法创建表
public void onCreate(SQLiteDatabase db) {
     // TODO Auto-generated method stub
     for(String sql:ActionConstants.CREATE_TABLES) {
         db.execSQL(sql);
     }
     for(String sql:ActionConstants.INIT_TABLES) {
         db.execSQL(sql);
     }
 }

用的数据库接口:
public AddDAO2(Context context , FragmentRecord fragmentrecord) {
// TODO Auto-generated constructor stub
this.c=context;
this.f=fragmentrecord;
db = new ActionDataHelper(c , f).getWritableDatabase();
db.close();
}

然后一打开就报错了,建的数据库和表应该没问题,我用另外的Activity加载ListView可以实现查找并且显示,但是加载在Fragment页面里面适配器不知道该怎么写了,求大神帮助啊!!十分的感谢啊!

  • 写回答

3条回答 默认 最新

  • 恋恋西风 2016-04-30 09:22
    关注

    new ActionDataHelper(c , f).
    1.你判断一个,这两个传入的参数是否为空;
    2.返回值是否这空,现在返回值是空;
    原因琮需要你自己来查一下;

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题