我可以很容易地检测到什么时候Fragments连接到ActivityviaActivity.onAttachFragment()
但我如何才能发现Activity有些Fragment与活动分离?没有Activity.onDetachFragment()
是否使用subcclasing Fragment并编写一些代码来通知Activity该状态是唯一的解决方案?
你可以使用接口在Fragment和之间进行通信Activity
这样的事情:
public Class MyFragment extends Fragment {
FragmentCommunicator communicator;
public void setCommunicator(FragmentCommunicator communicator) {
this.communicator = communicator;
}
@Override
public void OnDetach() {
communicator.fragmentDetached();
}
...
public Interface FragmentCommunicator {
public void fragmentDetached();
}
}
Run Code Online (Sandbox Code Playgroud)
在你的活动中:
public Class MyActivity extends Activity Implements FragmentCommunicator {
...
MyFragment fragment = new MyFragment();
fragment.setCommunicator(this);
...
@Override
public void fragmentDetached() {
//Do what you want!
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
新方法是设置接口实例onAttach.
public void onAttach(Activity activity) {
if (activity instanceof FragmentCommunicator) {
communicator = activity;
} else {
throw new RuntimeException("activity must implement FragmentCommunicator");
}
}
Run Code Online (Sandbox Code Playgroud)
现在没有必要有setCommunicator方法.
| 归档时间: |
|
| 查看次数: |
8147 次 |
| 最近记录: |