从多个片段处理 .canGoBack()
Handle .canGoBack() from multiple fragments
我有一个 activity,其中包含几个包含网络视图的片段。
我已将 Web 视图 canGoBack
和 goBack
暴露给应用程序的 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();
}
}
我有一个 activity,其中包含几个包含网络视图的片段。
我已将 Web 视图 canGoBack
和 goBack
暴露给应用程序的 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();
}
}