【发布时间】:2016-11-22 12:56:11
【问题描述】:
在实现 Fragment 到 Activity 通信时,通常所说的示例是:
MyActivity extends Activity implements MyInterface {
...
@Override
public void myMethod() {
// Do something....
}
...
}
MyFragment extends Fragment {
...
private void aMethod() {
((MyInterface) getActivity()).myMethod();
}
...
}
事实是,在我的项目中,Fragment 通常仅用于以“分而治之”的方式分解不同模块中的现有活动(也许在重构期间活动变得过于复杂)。将这些片段中的一个附加到另一个活动(与从中提取片段的活动不同)根本没有任何意义。
所以在我的情况下,我通常会得到:
MyActivity extends Activity {
...
void myMethod() {
// Do something....
}
...
}
MyFragment extends Fragment {
...
private void aMethod() {
((MyActivity) getActivity()).myMethod();
}
...
}
所以可怕的问题是:如果 Fragment 始终只在该活动中使用,为什么我们必须使用接口?这是不好的做法吗?在这些情况下使用接口有什么好处?
【问题讨论】:
标签: java android android-fragments android-activity interaction