我已经完成了数据库,我想在第一次打开应用程序时添加几行。主要问题,不知道应用程序在哪里实现这一点。例如,当用户第一次打开应用程序时,会有一个示例项。该项目可以删除。删除行后,它将永远不会再显示。我正在使用Androrm(对象关系映射器)androrm home page。我的主要问题:如何在发布之前向数据库添加单行(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();
}
}
保存
LogFirst lf = new LogFirst();
lf.setDB_oneName(name.getText().toString());
lf.save();
适配器
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;
}
}
答案 0 :(得分:0)
理想情况下,您在迁移中会做类似的事情。我对Androrm并不熟悉,但看起来他们对迁移有一些支持:http://www.androrm.com/documentation/models/migrations/
尝试输入代码以在覆盖migrate
函数中创建新记录。文档说迁移将被跟踪,但我不确定它将如何发挥作用以便看看会发生什么。