Android-如何从片段内部调用片段?

Android-如何从片段内部调用片段?,android,android-fragments,xamarin,Android,Android Fragments,Xamarin,我有一个显示卡片视图的片段,类似于仪表板。每个卡片视图都应该替换仪表板片段,并在单击时调用它自己的片段,但是我似乎不能这样做。 我尝试了以下方法: imageId.Click += delegate { ((FragmentActivity)Activity).ShowFragment(SmokeSensor); }; 活动中的方法: public void ShowFragment(SupportFragment fragment) {

我有一个显示卡片视图的片段,类似于仪表板。每个卡片视图都应该替换仪表板片段,并在单击时调用它自己的片段,但是我似乎不能这样做。 我尝试了以下方法:

imageId.Click += delegate {
                ((FragmentActivity)Activity).ShowFragment(SmokeSensor);
            };
活动中的方法:

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

对于嵌套片段,请在根片段上使用子片段管理器。

您可以在主活动中创建一个公共方法,并调用该方法来替换或加载当前片段中事件的片段。

@Milen我确实尝试过,使用了
((FragmentActivity)活动)。ShowFragment(new SmokeSensor()),但它抛出一个错误,即它
无法通过嵌套类型'******.Fragments.Dashboard.ViewAdapter'访问外部类型为'Android.Support.V4.App.Fragment'的非静态成员((youractivityname)getActivity()).yourmethodname();                                              如果问题仍然存在,请粘贴您尝试访问的方法。