通常のアクティビティからこれを使用して、非アクティビティクラスから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にキャストできません
a。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
ます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加