标题:关于安卓SQLite数据库的问题
只看楼主
cairunbo
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-7
结帖率:66.67%
已结贴  问题点数:20 回复次数:2 
关于安卓SQLite数据库的问题
小弟想要实现这样一个功能,在Fragment页面里面实现ListView显示,而ListView数据来源于数据库,加载ListView我写了一个Adapter,但是报错了,琢磨了好长时间也没解决,上论坛来求大神帮助,错误如下:
[local]1[/local]
首先在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页面里面适配器不知道该怎么写了,求大神帮助啊!!十分的感谢啊!
   
搜索更多相关主题的帖子: private method 数据库 适配器 start 
2016-05-01 17:17
ADust、
Rank: 2
等 级:论坛游民
帖 子:21
专家分:57
注 册:2013-1-10
得分:20 
向适配器中传Context,在Fragment中用getActivity()来获得
2016-05-07 11:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-464298-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.092545 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved