【发布时间】:2014-10-09 15:46:48
【问题描述】:
我有一个带有菜单的主要活动来浏览页面。为了使我的代码动态化,我使用所有片段的名称和类创建了适配器。
public class MenuItem {
private String title;
private Class className;
...
}
我的适配器是这样创建的:
ArrayList<MenuItem> menuItems=new ArrayList<MenuItem>();
menuItems.add(new MenuItem("Home", null, HomeFragment.class, R.drawable.ic_drawer, true));
menuItems.add(new MenuItem("Schedule", null, ScheduleFragment.class, R.drawable.ic_drawer, false));
在我的onClickListener菜单中,我想直接打开页面而不做任何条件语句:
private AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Class c = ((MenuItem) mMenuAdapter.getItem(position)).getClassName();
Fragment fragment = ??? //How do I create a Fragment dynamically ?
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.fl_container, fragment).commit();
这种编码方式用于 Activity,但在这种情况下更简单,因为要更改 Activity,我们只使用带有 Activity 名称的 startActivity,而不是它的实例。
我需要使用反射吗?
【问题讨论】:
标签: java android list class fragment