0

インテントのエクストラとして渡されActivityたクラスをロードするために1 つだけを使用することをお勧めします。Fragmentこの解決策は機能しますが、それが良いパターンかどうかはわかりません。このアプローチを使用したいのは、(現時点では) 各 Fragment が Activity であるためです。したがって、Fragment ごとに Activity を作成することは避けたいと考えています。

これが私の唯一の活動の例です:

public class GenericActivity extends FragmentActivity{

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.onepane);

    if (findViewById(R.id.fragment_container) != null) {

        if (savedInstanceState != null) {
            return;
        }

        String fragmentToLoadName;
        try{
            fragmentToLoadName = getIntent().getExtras().getString("FRAGMENT");
        }catch(NullPointerException e){ 
            FragmentHelper.add(R.id.fragment_container, new MainFragment(), 
                    MainFragment.class.getName(), getSupportFragmentManager());

        }

        if(fragmentToLoadName!=null){
            Class fragment_to_load_class = null;
            try {
                fragmentToLoadClass = Class.forName(fragmentToLoadName);
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }


            try {
                FragmentHelper.add(R.id.fragment_container, (Fragment) fragmentToLoadClass.newInstance(), 
                        fragmentToLoadName, getSupportFragmentManager());
            } catch (InstantiationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

}

}
4

0 に答える 0