1

私の古いバージョンの Android アプリは、4 つの異なるアクティビティ (FirstActivity => FourthActivity、対応する xml activity_first => activity_fourth) を使用してIntentいました。最近、ユーザー インターフェイスを変更してViewPagerIndicator. 次のような 4 つのフラグメントを実装しました。

public class FirstFragment extends Fragment{
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
        return inflater.inflate(R.layout.activity_first, null);
    }
}

問題は、すべてのビジネス コードを FirstActivity から FirstFragment に移行するにはどうすればよいかということです。onCreate、onDestroy、onStart ... に相当するものを見つけて、コードをコピーして貼り付けるだけでよいですか (必要に応じて getActivity()、getView() を追加します)? そうしないようにフラグメントをアクティビティにアタッチする簡単な方法はありますか?

4

1 に答える 1

3

最も簡単な方法は、個々のアクティビティで使用していたコードを新しいフラグメントに移行することonCreate()ですonActivityCreated()onCreate()次に、サポート アクティビティのメソッドでフラグメント トランザクションを使用して、フラグメントをアクティビティに追加します。android docs は、これを行う方法についてかなり良いウォークスルーを提供し、サンプルコードを完備しています。混乱が生じた場合に備えて、基になるアクティビティで次のことを行います。

新しいものを入手FragmentManager

FragmentManager fragmentManager = getFragmentManager(); 
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

フラグメントの新しいインスタンスを作成します

ExampleFragment fragment = new ExampleFragment(); 

そのフラグメントをFragmentManager

fragmentTransaction.add(R.id.fragment_container, fragment); 
fragmentTransaction.commit();

ViewPagerorのようにViewSwitcher、別の実装が必要ですが、これはあなたがやろうとしていることに対処しているように思えます。

于 2013-03-27T12:46:57.650 に答える