1

アクティビティで FragmentTransaction ft = getFragmentManager().beginTransaction() を宣言してフラグメントを置き換えようとすると、常に次のエラー アラートが表示されます。

ここに画像の説明を入力

import android.support.v4.app.FragmentTransaction;

    public class MainFrameActivity extends ActivitySupport {

    FragmentTransaction ft = getFragmentManager().beginTransaction();

    switch (position) {
    case 0:
        ft.replace(R.id.content_frame, fragmentDiscover);
        break;
    case 1:
        ft.replace(R.id.content_frame, fragmentPersonInfo);
        break;
    }

    ft.commit();

    mDrawerList.setItemChecked(position, true);

    mDrawerLayout.closeDrawer(mDrawerList);
}

クラスは ActivitySupport から継承されます。

public class ActivitySupport extends Activity implements IActivitySupport {

getFragmentManager を getSupportFragmentManager() に変更しようとしましたが、メソッドが未定義ではないという警告がさらに悪化しています。

では、getFragmentManager() を v4 でサポートされているメソッドにするにはどうすればよいでしょうか?

4

2 に答える 2

4

それを変更

public class ActivitySupport extends Activity implements IActivitySupport {

public class ActivitySupport extends FragmentActivity implements IActivitySupport {

そして、それは動作します

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
于 2013-11-09T19:07:10.927 に答える
3

最初に拡張FragmentActivityし、サポート ライブラリのものを使用していることを確認します。

getSupportFragmentManager().beginTransaction()の代わりに使ってみてくださいgetFragmentManager().beginTransaction()

問題は、v4 サポート ライブラリから FragmentTransaction をインポートし、v4 サポート ライブラリのフラグメント マネージャーを使用していないことです。

これは、さらに参照するためのリンクです。

お役に立てれば : )

于 2013-11-09T19:11:59.163 に答える