Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将行添加到不断增长的预发布数据库中。_Android_Database_Android Sqlite - Fatal编程技术网

Android 将行添加到不断增长的预发布数据库中。

Android 将行添加到不断增长的预发布数据库中。,android,database,android-sqlite,Android,Database,Android Sqlite,我已经完成了数据库,我想添加一些第一次打开应用程序时出现的行。主要问题是,不知道在应用程序中的何处实现此功能。例如,当用户第一次打开应用程序时,会出现一个示例项。可以删除该项目。删除该行后,它将不再显示。我正在使用Androm(对象关系映射器)。我的主要问题是:在发布之前,如何向数据库中添加一行(where&How)。在onCreate中,每次打开类时都会添加一行 去掉了大部分代码,使它变得简单 实施 public class LogFirst extends Model { prot

我已经完成了数据库,我想添加一些第一次打开应用程序时出现的行。主要问题是,不知道在应用程序中的何处实现此功能。例如,当用户第一次打开应用程序时,会出现一个示例项。可以删除该项目。删除该行后,它将不再显示。我正在使用Androm(对象关系映射器)。我的主要问题是:在发布之前,如何向数据库中添加一行(where&How)。在onCreate中,每次打开类时都会添加一行

去掉了大部分代码,使它变得简单

实施

public class LogFirst extends Model {

    protected CharField db_oneName;
    public LogFirst() {
        super(true);
        db_oneName = new CharField(80);

    }

    public void setDB_oneName(String name1) {
        db_oneName.set(name1);
    }

    public String getDB_oneName() {
        return db_oneName.get();
    }


    @Override
    public String toString() {
        return db_oneName.get();
    }


    public static List<LogFirst> all() {
        return LogFirst.objects().all().toList();
    }

    public static QuerySet<LogFirst> objects() {
        return LogFirst.objects(context(), LogFirst.class);
    }

    public boolean save() {
        Format formatter = new SimpleDateFormat("ddmmhhss");
        String id = formatter.format(Calendar.getInstance().getTime()) + "";
        return this.save(context(), Integer.valueOf(id));
    }


    public boolean delete() {
        return this.delete(context());
    }


    private static Context context() {
        return ExtendsActivity.context();
    }
}
适配器

public class LogFirstAdapter extends ArrayAdapter<LogFirst> {
    Context mContext;
    List<LogFirst> mLogs;

    public LogFirstAdapter(Context context, int textViewResourceId, List<LogFirst> logs) {
        super(context, textViewResourceId);
        mContext = context;
        mLogs = logs;
    }


    public void setLogs(List<LogFirst> logs) {
        mLogs = logs;
    }


    public List<LogFirst> getLogs() {
        return mLogs;
    }


    public void add(LogFirst log) {
        mLogs.add(log);
    }


    public void remove(LogFirst log) {
        mLogs.remove(log);
    }


    public int getCount() {
        return mLogs.size();
    }


    public LogFirst getItem(int position) {
        return mLogs.get(position);
    }


    public View getView(int position, View convertView, ViewGroup parent) {
        LogFirstRow view = (LogFirstRow) convertView;
        if (view == null) {
            view = new LogFirstRow(mContext);
        }
        LogFirst log = getItem(position);
        view.setLog(log);
        return view;
    }
}
公共类LogFirstAdapter扩展了ArrayAdapter{
语境;
列出MLOG;
公共LogFirstAdapter(上下文上下文、int textViewResourceId、列表日志){
super(上下文,textViewResourceId);
mContext=上下文;
mLogs=日志;
}
公共作废设置日志(列出日志){
mLogs=日志;
}
公共列表getLogs(){
返回MLOG;
}
公共作废添加(日志第一次日志){
mLogs.add(日志);
}
公共无效删除(日志第一次日志){
mLogs.remove(日志);
}
public int getCount(){
返回mLogs.size();
}
公共日志第一个getItem(内部位置){
返回mLogs.get(位置);
}
公共视图getView(int位置、视图转换视图、视图组父视图){
LogFirstRow视图=(LogFirstRow)convertView;
如果(视图==null){
视图=新的LogFirstRow(mContext);
}
LogFirst log=getItem(位置);
view.setLog(log);
返回视图;
}
}

理想情况下,您应该在迁移中执行类似的操作。我不熟悉Androm,但看起来他们对迁移有一些支持:

尝试在重写的
migrate
函数中输入代码以创建新记录。文档说迁移会被跟踪,但我不确定它将如何进行,所以请测试看看会发生什么

public class LogFirstAdapter extends ArrayAdapter<LogFirst> {
    Context mContext;
    List<LogFirst> mLogs;

    public LogFirstAdapter(Context context, int textViewResourceId, List<LogFirst> logs) {
        super(context, textViewResourceId);
        mContext = context;
        mLogs = logs;
    }


    public void setLogs(List<LogFirst> logs) {
        mLogs = logs;
    }


    public List<LogFirst> getLogs() {
        return mLogs;
    }


    public void add(LogFirst log) {
        mLogs.add(log);
    }


    public void remove(LogFirst log) {
        mLogs.remove(log);
    }


    public int getCount() {
        return mLogs.size();
    }


    public LogFirst getItem(int position) {
        return mLogs.get(position);
    }


    public View getView(int position, View convertView, ViewGroup parent) {
        LogFirstRow view = (LogFirstRow) convertView;
        if (view == null) {
            view = new LogFirstRow(mContext);
        }
        LogFirst log = getItem(position);
        view.setLog(log);
        return view;
    }
}