Reputation: 103
This is my model class for my reminds
public class Remind extends RealmObject {
@Required
private String descripcion;
@Required
private String fecha;
@Required
private String hora;
@Required
private String titulo;
@PrimaryKey
private String id;
public Remind() {}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getFecha() {
return fecha;
}
public void setFecha(String fecha) {
this.fecha = fecha;
}
public String getHora() {
return hora;
}
public void setHora(String hora) {
this.hora = hora;
}
}
this is my config class for obtain context 'cause i don't know what is the problem with this class :(
public class RemindMe extends Application {
@RealmModule(classes = {Remind.class})
public class SimpleRealmModule {}
private static RemindMe instance;
@Override
public void onCreate() {
super.onCreate();
RealmConfiguration config = new RealmConfiguration.Builder(this).name("RemindMe.DB").build();
Realm.setDefaultConfiguration(config);
}
and this is a part of mi DAO for add some reminds
//this is so problematic class 'cause the Realm object don't find the database context
public class RemindsDAO {
static boolean flag = false;
public boolean agregarRecordatorio(final Remind remind){
final Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
Remind rem = realm.createObject(Remind.class);
rem.setId(UUID.randomUUID().toString());
rem.setTitulo(remind.getTitulo());
rem.setDescripcion(remind.getDescripcion());
rem.setHora(remind.getHora());
rem.setFecha(remind.getFecha());
}
}, new Realm.Transaction.Callback() {
@Override
public void onSuccess() {
realm.commitTransaction();
RemindsDAO.flag = true;
}
@Override
public void onError(Exception e) {
flag = false;
}
});
return flag;
}
}
Upvotes: 1
Views: 1024
Reputation: 355
You need to register your Application class in the Manifest:
<application
android:name=".RemindMe">
your activities go here...
</application>
Once done you should be able to use Realm.getDefaultInstance() throughout the app with no hassle.
Upvotes: 4