假设我有一个继承自 ParentFragment 的类 ChildFragment 。目的是让一些活动和片段具有通常由一个 ParentFragment 处理的按钮。
当用户按下刷新按钮时,它将调用refresh()
中的ParentFragment
功能。但是,实际下载此文件的操作由ChildFragment处理,因为每个片段都有不同的内容。因此,每当refresh()
完成时,我希望这个ParentFragment在子代中调用一些东西。
我该怎么做?或者,如果有更好的方法,它也会有所帮助。
答案 0 :(得分:1)
class ParentFragment() {
protected void refresh() {
// general code when refresh every fragment
}
}
class ChildFragment1 extend ParentFragment {
@Override
public void refresh() {
super.refresh();
// code for refresh child fragment1
}
}
class ChildFragment2 extend ParentFragment {
@Override
public void refresh(); {
super.refresh();
// code for refresh child fragment2
}
}
答案 1 :(得分:1)
如果您不希望子类必须实现刷新并调用super.refresh,请在ParentFragment中为downloadFile方法定义一个抽象方法,然后在子(ren)类中实现它:
class ParentFragment {
public void refresh() {
downloadFile();
}
protected abstract void downloadFile();
}
class ChildFragment extends ParentFragment {
@Override
protected void downloadFile() {
// do the download here
}
}
答案 2 :(得分:1)
EventBus! - 简化组件之间的通信