java我正在制作一个提醒应用程序,我已经尝试使用realm。我正在使用getInstance()。这就是我得到的错误
无法转换io。领域安卓的RealmConfiguration。所容纳之物上下文 这是我的活动类
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_reminder);
rvListings = (RecyclerView) findViewById(R.id.events);
list = new ArrayList<ListingsModel>();
// read the saved values in database
Realm myRealm = Realm.getInstance(getBaseContext());
results1 = myRealm.where(EventModelDB.class).findAll();
for (int i = results1.size() - 1; i >= 0; i--) {
EventModelDB c = results1.get(i);
model = new ListingsModel();
model.setEvent(c.getEvent());
model.setTime(c.getTime());
model.setDate(c.getDate());
model.setTimestamp(c.getTimestamp());
list.add(model);
}
adapter = new ListingsAdapter(list, getBaseContext());
rvListings.setAdapter(adapter);
mLayoutManager = new LinearLayoutManager(this);
// mLayoutManager.setReverseLayout(true);
// mLayoutManager.setStackFromEnd(true);
rvListings.setLayoutManager(mLayoutManager);
}
这是我的列表适配器。我这里也有同样的错误。以下是相关部分。我甚至试过用这个
RealmConfiguration realmConfig1 = new
RealmConfiguration.Builder(getContext()).name("1testSave1.realm").build();
Realm.deleteRealm(realmConfig1);
Realm myRealm = Realm.getInstance(realmConfig1);
public class ListingsAdapter extends RecyclerView.Adapter<ListingsAdapter.Viewholder> {
public ListingsAdapter(ArrayList<ListingsModel> data, Context context) {
this.data = data;
this.context = context;
}
// long click an item to delete it from database
holder.toplayout.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// deleting the selected row from Realm database
Realm realm = Realm.getInstance(context);
RealmResults<EventModelDB> result = realm.where(EventModelDB.class)
.equalTo("timestamp", data.get(position).getTimestamp())
.findAll();
if(result != null){
if(result.size() > 0){
realm.beginTransaction();
result.remove(0);
realm.commitTransaction();
}
}
}
});
}
}
# 1 楼答案
因此,假设您从构建中删除以下内容。格雷德尔:
并在项目级构建gradle中替换为最新版本
并应用插件
现在我们可以讨论这里有多少事情是错误的,所以首先我们应该补充一下
然后我们可以在应用课上做
然后在AndroidManifest中。xml
然后
及
轰,修好你的船
# 2 楼答案
在
setContentView(R.layout.activity_reminder);
之后添加以下内容:
Realm.init(this);
# 3 楼答案
您正在将Android上下文传递给Realm
这需要一个真正的配置
有关更多信息,请参见https://realm.io/docs/dotnet/latest/#realms