我有一个包含Web视图的多个片段的活动。
我已将网络视图canGoBack
和goBack
公开给应用程序的MainActivity
。
目前我让它为一个片段工作,但我不知道如何检查哪个片段正在发送信息,反过来如何发送适当的片段响应。
以下是MainActivity所涉及的代码:
@Override
public void onBackPressed() {
circleFragment.canGoBack();
if (circleFragment.canGoBack()) {
circleFragment.goBack();
} else {
super.onBackPressed();
}
}
答案 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();
}
}