无法解析方法getActivity()

时间:2015-09-11 15:38:33

标签: android android-fragments navigation-drawer

  • 我是Android的新手,并且通过以下方式学习如何在Android中创建片段 例如:Fragment Navigation Drawer

  • 在菜单项之间导航添加导航标题之间的代码包含方法var newEditedRole = GetRoleVm(editedRole.RoleId);

  • 由于作者没有提到粘贴此代码的位置,我粘贴在getActivity()文件中

  • 我是否在在菜单项之间导航添加导航标题之间的代码粘贴在正确的位置?

  • 在方法MainActivity.java中有评论selectDrawerItem(MenuItem menuItem)
    作者是否希望我在这里添加一些内容。

  • 我在AndroidStudio上创建的项目文件布局如下:AndroidStudio Snapshot

4 个答案:

答案 0 :(得分:61)

您可以使用:

this Or `MainActivity.this`

而不是:

getActivity()

答案 1 :(得分:24)

活动没有getActivity()方法 片段有。

因为getActivity()说:“返回包含我的活动”。

虽然Framents包含在活动中,但活动本身却不包含。

答案 2 :(得分:1)

已经明确指出不能在活动中使用 getActivity() 方法。好吧,除了 this 关键字之外的其他选择可能是;

  • 获取当前活动上下文:使用 getContext() 可以在类似文本视图的视图上调用此方法 textView.getContext(); 这将提供视图当前所在的 Activity 的上下文。即类似于 View.getContext();
  • 获取应用级上下文:getApplicationContext() 此方法返回包含应用程序整个生命周期的 Activity。

答案 3 :(得分:0)

在Fragment中,最好使用onAttach()方法来获取附加到它的Activity的实例。

@Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
    }