gpt4 book ai didi

android - 将事件从 fragment 发布到其 Activity 的父 Activity

转载 作者:行者123 更新时间:2023-11-30 02:11:54 25 4
gpt4 key购买 nike

需要帮助https://github.com/square/otto .

在我的申请中有

ActivityBase 与:

 @Override
protected void onResume() {
super.onResume();
SmartApplication.bus.register(this);
}

@Override
protected void onPause() {
super.onResume();
SmartApplication.bus.unregister(this);
}

ActivityOperationBase extends ActivityBase with :

@Subscribe
public void onNextStepRequest(NextStepRequestEvent event) {
//...
}

ActivityMobile extends ActivityOperationBase,其中包含 FragmentCommonEnterMoney。这个 fragment 有按钮

SmartApplication.bus.post(new NextStepRequestEvent(/*params*/));

点击它。但它不火

 @Subscribe
public void onNextStepRequest(NextStepRequestEvent event) {
//...
}

我做错了什么?

最佳答案

这是因为您正在创建新的 NextStepRequestEvent,而不是调用 onNextStepRequest

实际上你想使用 fragment 中的onNextStepRequest来创建接口(interface)

public interface OnNextStepRequestCallback{
public void onNextStepCallback(NextStepRequestEvent event);
}

并使用它

public class ActivityMobile extends ActivityOperationBase implement OnNextStepRequestCallback {

public void onNextStepCallback(NextStepRequestEvent event){
onNextStepRequest(event);
}
}

要调用上述方法,请传递 OnNextStepRequestCallbackActivityMobile 中的 FragmentCommonEnterMoney 的引用(或覆盖 Fragment 的 onAttach )

FragmentCommonEnterMoney  frag = new FragmentCommonEnterMoney();
frag.setOnNextStepRequestCallback(this);

在你的 FragmentCommonEnterMoney 中使用

public class FragmentCommonEnterMoney  extends Fragment{
private OnNextStepRequestCallback eventCallback;

public void setOnNextStepRequestCallback(OnNextStepRequestCallback callback) {
eventCallback = callback;
}
}

并使用 eventCallback 从您的 fragment 中触发 onNextStepRequest

关于android - 将事件从 fragment 发布到其 Activity 的父 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29986999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com