处理来自多个片段的.canGoBack()

时间:2015-05-01 09:48:19

标签: android android-fragments handle

我有一个包含Web视图的多个片段的活动。 我已将网络视图canGoBackgoBack公开给应用程序的MainActivity

目前我让它为一个片段工作,但我不知道如何检查哪个片段正在发送信息,反过来如何发送适当的片段响应。

以下是MainActivity所涉及的代码:

@Override
public void onBackPressed() {

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

    } else {
        super.onBackPressed();
    }
}

1 个答案:

答案 0 :(得分:3)

而不是实现布尔canGoBack()

只需创建一个界面" Backable"

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

制作Fragment implement Backable 如果您当前的片段为if(myFragment instanceof Backable)

,请立即使用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();
    }

}