package com.demo; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentTransaction; import android.util.Log; public class DynamicFragmentActivity extends FragmentActivity { private final static String TAG = "FragmentDemoActivity"; @Override public ClassLoader getClassLoader() { return MultiDexClassLoader.getInstance(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.dynamic_fragment); // We only want to load a new Fragment if the Activity // is built from scratch. if (savedInstanceState == null) { FragmentTransaction ft = getSupportFragmentManager() .beginTransaction(); ft.add(R.id.static_layout, new TestFragment()).commit(); String className = this.getIntent().getStringExtra("class_name"); try { @SuppressWarnings("unchecked") Class<Fragment> fragmentClass = (Class<Fragment>) MultiDexClassLoader .getInstance().loadClass(className); Fragment fragment = fragmentClass.newInstance(); ft = getSupportFragmentManager().beginTransaction(); ft.add(R.id.dynamic_layout, fragment).commit(); } catch (Exception e) { Log.e(TAG, e.getMessage(), e); } } } }