像
tabfragment
是一个
String
在您的代码中,您不能调用
new tabfragment
. 这是不正确的,如果它是您在这里发布的,那么您的代码将无法编译。
您可以使用
Class.forName()
方法,假设所有片段都在同一个包中
packagename
在一个
名为的字符串
fragmentPackage
以正确的格式,例如
com.app.frags
,则应执行以下操作:
try{
Fragment fragment = (Fragment) Class.forName(fragmentPackage+ "." + tabfragment).newInstance();
} catch(ClassNotFoundException e) {
e.printStackTrace();
}
所以你的
addFragment
方法应为:
public void addFragment(String tabfragment) {
try{
Fragment fragment = (Fragment) Class.forName(fragmentPackage+ "." + tabfragment).newInstance();
mFragmentList.add(fragment);
} catch(ClassNotFoundException e) {
e.printStackTrace();
}
}