Android 从片段中引用 MainActivity 的实例变量

Android referring to MainActivity's instance variable from a fragment

我在我的 MainActivity 中设置了一个导航抽屉,我想从片段访问它。

NavigationDrawerFragment.java
public void updateDrawer() {
..setAdapter(...);
}


MainActivity.java
public NavigationDrawerFragment mNavigationDrawerFragment;


Fragment_Login.java
(inside some function)...
MainActivity.this.mNavigationDrawerFragment.updateDrawer();
...

您可以看到我想在从我的登录片段登录后更新我的导航抽屉视图。但是,除非我能够引用 MainActivity 实例,否则我无法进行调用。调用 MainActivity.this 会引发编译错误:

...MainActivity is not an enclosing class

想绕过这个吗?我也试过 getActivity().

应该这样做:

((MainActivity)getActivity).mNavigationDrawerFragment.updateDrawer();

但不是最好的方法,你应该看看Interfaces