【问题标题】:Cannot access a non-static member of outer type X via nested type X无法通过嵌套类型 X 访问外部类型 X 的非静态成员
【发布时间】:2015-08-17 08:21:11
【问题描述】:

我想调用 Main Activity 中的一个方法来调用一个新的 Fragment 使用
((FragmentActivity)Activity).ShowFragment(new SmokeSensor());

但是它会抛出错误:

无法访问外部类型的非静态成员

'Android.Support.V4.App.Fragment' 通过嵌套类型

'*********.Fragments.Dashboard.ViewAdapter`

我做错了什么?

代码:

public void ShowFragment(SupportFragment fragment) {
    var transaction = SupportFragmentManager.BeginTransaction();
    connectionStatus.Visibility = ViewStates.Gone;

    if (!ConnectionDetector.IsConnected(this)) {
        connectionStatus.Visibility = ViewStates.Visible;

        transaction.Detach(currentFragment);
        transaction.Commit();
        drawerLayout.CloseDrawer(leftDrawer);

        return;
    }

    if (fragment == currentFragment) {
        transaction.Detach(currentFragment);
        transaction.Attach(currentFragment);
        transaction.Commit();
        drawerLayout.CloseDrawer(leftDrawer);

        return;
    }

    transaction.SetCustomAnimations(Resource.Animation.slide_in,
                                    Resource.Animation.slide_out);
    transaction.Replace(Resource.Id.fragment_container, fragment);
    transaction.Commit();
    drawerLayout.CloseDrawer(leftDrawer);
    currentFragment = fragment;
}

【问题讨论】:

  • 烟雾传感器是静态类吗?
  • @israelaltar 不,不是。我实际上会发布完整的错误
  • 你不能从静态访问非静态。确保您正在使用的方法 ((FragmentActivity)Activity).ShowFragment(new SmokeSensor()); 不是静态的。
  • @M.kazemAkhgary 没有什么是静态的
  • 问题可能是因为我在重写方法RecyclerView.ViewHolder OnCreateViewHolder 中调用它,这似乎不喜欢它

标签: c# android xamarin


【解决方案1】:

为什么你的“Android.Support.V4.App.Fragment”只能在 *******.Fragments.Dashboard.ViewAdapter 中是静态的?

看到cannot-access-a-non-static-member-of-outer-typethis

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    相关资源
    最近更新 更多