从多个片段处理 .canGoBack()

Handle .canGoBack() from multiple fragments

我有一个 activity,其中包含几个包含网络视图的片段。 我已将 Web 视图 canGoBackgoBack 暴露给应用程序的 MainActivity

目前我让它在一个片段上工作,但我不确定如何检查哪个片段正在发送信息,以及如何向适当的片段发送响应。

这里是MainActivity涉及的代码:

@Override
public void onBackPressed() {

    circleFragment.canGoBack();
    if (circleFragment.canGoBack()) {
        circleFragment.goBack();

    } else {
        super.onBackPressed();
    }
}

而不是实现布尔值 canGoBack()

只需创建一个接口"Backable"

public interface Backable {
    public void goBack();
    public boolean canGoBack();
}

让你的Fragment implement Backable 如果您当前的 Fragment 是 backable

,则使用 if(myFragment instanceof Backable) 到现在

所以:

@Override
public void onBackPressed() {

    if(myFragment instanceof Backable) {
        ((Backable) myFragment).canGoBack();
        if(((Backable) myFragment).canGoBack()){
            ((Backable) myFragment).goBack();

        }else{
            super.onBackPressed();
        }
    }else{
        super.onBackPressed();
    }

}