【发布时间】:2018-08-26 21:09:38
【问题描述】:
我正在寻找我的问题的答案。这是我第一次接触 Realm 数据库,我在保存数据期间遇到片段中的空对象引用问题。有谁知道我做错了什么?
辅助方法:
public void saveTask(final String text, final String date, final String time ) {
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm bgRealm) {
Task task = bgRealm.createObject(Task.class);
task.setText(text);
task.setDate(date);
task.setTime(time);
}
}, new Realm.Transaction.OnSuccess() {
@Override
public void onSuccess() {
// Transaction was a success.
Log.d(TAG, "ON_SUCCESS: Data Written Successfully");
}
}, new Realm.Transaction.OnError() {
@Override
public void onError(Throwable error) {
// Transaction failed and was automatically canceled.
Log.d(TAG, "ON_ERROR: Error");
}
});
}
片段中的 OnClick 方法:
@OnClick(R.id.save_button)
public void onClickSave() {
realmHelper.saveTask(title_text.getText().toString().trim(), date_text.getText().toString().trim(), time_text.getText().toString().trim());
}
onCreateView 内的代码:
ButterKnife.bind(this, view);
((MainActivity) getActivity()).hideFloatingActionButton();
Realm.init(getActivity());
RealmConfiguration configuration = new RealmConfiguration
.Builder()
.deleteRealmIfMigrationNeeded()
.build();
realm = Realm.getInstance(configuration);
我尝试了在 onClick 方法中使用 textview 字段的解决方案,但仍然相同。
【问题讨论】:
-
null object reference给了你什么? -
方法 saveTask.
-
realminsiderealmHelper未初始化。 -
是的。问题出在 Helper 构造函数中。