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();
        }
    }