如何在Android上的Realm中使用构造函数 [英] How to use constructor in Realm on Android
问题描述
我想在Android中将 Realm
用于数据库,并且我创建provider class
来保存值,但是在使用此类构造函数时在主类(activity
)中向我显示此错误,请从此图像中查看错误:错误图像链接
I want use Realm
for Database in android, and i create provider class
to save values but when use this class constructor in main class (activity
) show me this error, please see error from this image : Error image Link
Task_Provider类:
public class Task_Provider extends RealmObject {
public Task_Provider() {
}
public String getAddTask() {
return addTask;
}
public void setAddTask(String addTask) {
this.addTask = addTask;
}
public long getAdded_date() {
return added_date;
}
public void setAdded_date(long added_date) {
this.added_date = added_date;
}
public long getWhen_date() {
return when_date;
}
public void setWhen_date(long when_date) {
this.when_date = when_date;
}
public boolean isComplete() {
return complete;
}
public void setComplete(boolean complete) {
this.complete = complete;
}
public Task_Provider(String addTask, long added_date, long when_date, boolean complete) {
this.addTask = addTask;
this.added_date = added_date;
this.when_date = when_date;
this.complete = complete;
}
private String addTask;
@PrimaryKey
private long added_date;
private long when_date;
private boolean complete;
}
主要活动(按钮setOnClickListener):
Main Activity (Button setOnClickListener) :
String addTask = dialog_edit_task.getText().toString();
long now = System.currentTimeMillis();
RealmConfiguration realmConfiguration = new RealmConfiguration.Builder(getActivity()).build();
Realm.setDefaultConfiguration(realmConfiguration);
Realm realm = Realm.getDefaultInstance();
Task_Provider task_provider = new Task_Provider(addTask, now, 0, false);
realm.beginTransaction();
realm.copyToRealm(task_provider);
realm.commitTransaction();
realm.close();
我该如何解决此问题? tnx全部< 3
How can i fix this problem? tnx all <3
推荐答案
构造函数起作用,并提供自Realm 2.0.0以来的默认值.
Constructors do work and provide default values since Realm 2.0.0.
以前:
public Task_Provider(String addTask, long added_date, long when_date, boolean complete) {
this.addTask = addTask;
this.added_date = added_date;
this.when_date = when_date;
this.complete = complete;
}
这不起作用,因为Realm-Transformer在调用super()
之前无法执行RealmProxy的构造函数,因此过去正确的方法是
This didn't work because the Realm-Transformer couldn't execute the constructor for a RealmProxy before calling super()
, so the right way to do it used to be
public Task_Provider() {
}
public static Task_Provider create(String addTask, long added_date, long when_date, boolean complete) {
Task_Provider taskProvider = new Task_Provider();
taskProvider.addTask = addTask;
taskProvider.added_date = added_date;
taskProvider.when_date = when_date;
taskProvider.complete = complete;
return taskProvider;
}
那你就可以做
Task_Provider taskProvider = Task_Provider.create(...);
这篇关于如何在Android上的Realm中使用构造函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!