在我的应用程序中,我在fragment
中使用Activity
,并且想在fragment
中运行一个代码时,在Activity
中调用一些代码。
我写了以下代码,但是当加载数据未运行activity
代码时!
片段代码:
public void loadRecentPosts() {
ApiUtils.getApiInterface().getRecentPosts(AppConstant.DEFAULT_PAGE).enqueue(new Callback<List<Post>>() {
@Override
public void onResponse(Call<List<Post>> call, Response<List<Post>> response) {
if (response.isSuccessful()) {
if (!recentPostList.isEmpty()) {
recentPostList.clear();
}
recentPostList.addAll(response.body());
if (recentPostList.size() > 0) {
recentPostAdapter.notifyDataSetChanged();
EventBus.getDefault().post(new LoadMainDataEvent());
}
} else {
showEmptyView();
}
pbSectionLoader.setVisibility(View.GONE);
}
@Override
public void onFailure(Call<List<Post>> call, Throwable t) {
showEmptyView();
t.printStackTrace();
}
});
}
}
活动代码:
@Subscribe (threadMode = ThreadMode.MAIN)
public void onLoadMainDataEvent(LoadMainDataEvent loadMainDataEvent){
Toast.makeText(activity, "OK", Toast.LENGTH_SHORT).show();
}
我想要从服务器获取数据到fragment
时,在activity
页面中运行代码。
我该如何解决?请帮我。谢谢
答案 0 :(得分:0)
尝试一下就可以了
FragmentClass.java
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
if (!EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().register(this);
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageBusEvent event) {
}
@Override
public void onDestroy() {
//unregister event bus
EventBus.getDefault().unregister(this);
super.onDestroy();
}