繁体   English   中英

从非活动类打开SherlockFragment活动?

[英]opening a SherlockFragment activity from non activity class?

我正在尝试使用非常规类的活动来打开SherlockFragment活动

Android.app.Activity >> NonActivityClass >> SherlockFragmentActivity

将其从Activity类传递给NonActivityClass并尝试启动SherlockFragmentActivity

代码-

private void changeFragment(Activity act) {

        Fragment profileFrag = new New_ProfileFragment();
        FragmentTransaction transaction = ((SherlockFragmentActivity) act)
                .getSupportFragmentManager().beginTransaction();

        try {
            ((SherlockFragmentActivity) act).getSupportFragmentManager()
                    .popBackStackImmediate(profileFrag.toString(),
                            FragmentManager.POP_BACK_STACK_INCLUSIVE);
        } catch (java.lang.IllegalStateException e) {

        }

        transaction.addToBackStack(profileFrag.toString());
        transaction.replace(R.id.content_frame, profileFrag);
        transaction.commitAllowingStateLoss();
        ((SherlockFragmentActivity) act).getSupportFragmentManager()
                .executePendingTransactions();

    }

我在输入错误

FragmentTransaction transaction = ((SherlockFragmentActivity) act)
                .getSupportFragmentManager().beginTransaction();

异常 -java.lang.ClassCastException:无法将活动强制转换为com.actionbarsherlock.app.SherlockFragmentActivity

一种。 您知道ActionBarSherlock已经过时2年了吗?

b。

活动不能转换为com.actionbarsherlock.app.SherlockFragmentActivity

几乎说明了一切。 您无法将android.app.Activity转换为SherlockFragmentActivity因为从我看到的内容来看, SherlockFragmentActivity不会扩展android.app.Activity

C。 你要么要做

activity.getFragmentManager()

或者,如果您必须使用SupportFragmentManager ,那么您的第一个活动必须是android.support.v4.app.FragmentActivity因此您可以

activity.getSupportFragmentManager()

无论哪种方式,都可以摆脱ActionBarSherlock

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM