从String实例化一个片段?

时间:2014-03-16 20:29:56

标签: android android-fragments fragment

我想让用户配置ViewPager。现在我将一个类保存为数组中的字符串。

EditableListItem fragment = new EditableListItem(R.string.dialer, Dialer.class.toString(), this);

我想将该类作为字符串检索并将其添加到viewpager中。在伪代码中,它将类似于:

String s = fragment.getClass();
Fragment f = new Fragment.fromString(s);
mPagerAdapter.addFragment(f);

如何做到这一点?

1 个答案:

答案 0 :(得分:2)

String fragmentName = "fragment"
Fragment fragment = null;

try {
    Class<?> fragmentClass = Class.forName(fragmentName);
    fragment = (Fragment)fragmentClass.newInstance();                                           
} catch(ClassNotFoundException e) {
    e.printStackTrace();
} catch (IllegalAccessException e) {
    e.printStackTrace();
} catch (java.lang.InstantiationException e) {
    e.printStackTrace();
} 

mPagerAdapter.addFragment(fragment)

您可以从这样的字符串中实例化一个类。

或者,如果您支持API Level 11及更高版本,或者可能使用支持库(不确定),则可以使用以下方法: Fragment.instantiate