【发布时间】:2016-07-05 11:40:28
【问题描述】:
我有一些课程 application class 扩展 Application。我将它用作填充数据库和执行 REST 调用的控制器。有一个接口:
private OnDBfilled onFilledListener;
...
public void setOnFilledListener(OnDBfilled onFilledListener) {
this.onFilledListener = onFilledListener;
}
public interface OnDBfilled {
void onFilledCallback();
}
...
当我得到所需的数据时,调用它来了解Fragment,该数据已成功从互联网加载并填充到数据库:
@Override
public void onResponse(Call call, Response response) throws IOException {
...//working with data
onFilledListener.onFilledCallback();
}
第一次,当调用完成并填充数据库时,我可以在日志中看到结果:
private Application controller;
private Application.OnDBfilled listener;
...
controller = new Application();
listener = new Application.OnDBfilled() {
@Override
public void onFilledCallback() {
System.out.println("bd is filled. replacing fragments initiated editianal");
replaceFragment();
}
};
controller.setOnFilledListener(listener);
这工作正常,我可以看到日志消息。但是当我尝试在另一个片段中做时,我在这一行中有Null Pointer Exception:
onFilledListener.onFilledCallback();
这是另一个片段的代码,但几乎相等:
private Application controller;
private Application.OnDBfilled filledDBListener;
...
//onCreateView
controller = new Application();
filledDBListener = new Application.OnDBfilled() {
@Override
public void onFilledCallback() {
swipeRefreshLayout.setRefreshing(false);
// fillEventListFromBD(UserData.getCity(getActivity()));
}
};
controller.setOnFilledListener(filledDBListener);
有什么建议吗?谢谢!
【问题讨论】:
-
@RC 你说的时间是什么意思?
-
我看错了,算了
-
@RC 你的建议没有帮助:(
标签: android android-fragments interface