Android 如何覆盖活动';片段中的s方法
我想通过添加到活动中的片段重写活动中的方法 我有以下设置: 基本活动 碱基碎片活性 工具栏行为 碱基片段 如何从Android 如何覆盖活动';片段中的s方法,android,android-fragments,overriding,Android,Android Fragments,Overriding,我想通过添加到活动中的片段重写活动中的方法 我有以下设置: 基本活动 碱基碎片活性 工具栏行为 碱基片段 如何从BaseFragment或其子片段重写BaseFragmentActivity的shouldLimitToolbarCharacters() 每当我从BaseFragment的子片段触发shouldLimitToolbarCharacters()时,它应该使用子片段为shouldLimitToolbarCharacters()提供的重写方法 谢谢。在活动中调用片段的方法 BaseFra
BaseFragment
或其子片段重写BaseFragmentActivity
的shouldLimitToolbarCharacters()
每当我从BaseFragment
的子片段触发shouldLimitToolbarCharacters()
时,它应该使用子片段为shouldLimitToolbarCharacters()
提供的重写方法
谢谢。在
活动
中调用片段
的方法
BaseFragmentActivity
public class BaseFragmentActivity extends BaseActivity implements ToolbarBehaviour {
BaseFragment fragment; // init in oncreate or something;
// override from BaseActivity and from ToolbarBehaviour
@Override
public boolean shouldLimitToolbarCharacters () {
if(fragment == null)
return false;
return fragment.shouldLimitToolbarCharacters();
}
}
public class BaseFragment extends Fragment {
public boolean shouldLimitToolbarCharacters(){
return true; // do what ever you want to do
}
}
BaseFragment
public class BaseFragmentActivity extends BaseActivity implements ToolbarBehaviour {
BaseFragment fragment; // init in oncreate or something;
// override from BaseActivity and from ToolbarBehaviour
@Override
public boolean shouldLimitToolbarCharacters () {
if(fragment == null)
return false;
return fragment.shouldLimitToolbarCharacters();
}
}
public class BaseFragment extends Fragment {
public boolean shouldLimitToolbarCharacters(){
return true; // do what ever you want to do
}
}
您可以通过
((BaseFragmentActivity)getActivity())直接访问activity方法代码>
像这样使用
@Override
public void onAttach (Context context) {
if (context instanceof BaseFragmentActivity) {
((BaseFragmentActivity)getActivity()).shouldLimitToolbarCharacters();
}
}
你能告诉我你到底想做什么吗?从一个片段重写一个活动方法。如果你告诉我们你想在功能方面做什么,也许会更好。你想要的在技术上是不可能的,因为Activity
和Fragment
都是具体的类,不是彼此的子类。我想这样做。从技术上讲,我们不能覆盖,我知道。是的,会更好,所以我们可以提供更好的解决方案。我说的是覆盖,而不是呼叫。
public class BaseFragment extends Fragment {
public boolean shouldLimitToolbarCharacters(){
return true; // do what ever you want to do
}
}
@Override
public void onAttach (Context context) {
if (context instanceof BaseFragmentActivity) {
((BaseFragmentActivity)getActivity()).shouldLimitToolbarCharacters();
}
}