【发布时间】: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中调用它,这似乎不喜欢它