android - SherlockNavigationDrawer(实现actionbarsherlock)

标签 android android-fragments actionbarsherlock

我正在尝试修改 SherlockNavigationDrawer 中的示例。它只有一个 fragment ,但我不知道如何添加更多 fragment ,每个 fragment 都有自己的布局,所有 fragment 都不一样......

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FrameLayout frame = new FrameLayout(this);
    frame.setId(CONTENT_VIEW_ID);
    setContentView(frame, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

    if (savedInstanceState == null) {
        setInitialFragment();
    }
}


private void setInitialFragment() {
    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.add(CONTENT_VIEW_ID, MainFragment.newInstance()).commit();
}

但我的想法是在单击 MainFragment 内的 ListView 中的项目时调用一个新 fragment

private class DrawerItemClickListener implements ListView.OnItemClickListener {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        mContent.setText(Shakespeare.DIALOGUE[position]);
        mActionBar.setTitle(Shakespeare.TITLES[position]);
        mDrawerLayout.closeDrawer(listView);

       //START A NEW FRAGMENT HERE DEPENDING OF THE POSITION CLICKED
    }
}

有什么想法吗? 提前致谢

最佳答案

在 sherlockFragment 内,即示例中唯一的 fragment 。

public class MainFragment extends SherlockFragment {
  Customfragment1 fragment1;
  Customfragment2fragment2;
  @Override
  public void onCreate(Bundle savedInstanceState) {
        fragment1 = new ContactsFragment();
    fragment2 = new GroupsFragment();
  }

      private void selectItem(int position) {

            FragmentTransaction ft = getSherlockActivity().getSupportFragmentManager().beginTransaction();
            // Locate Position
            switch (position) {
            case 0:
                ft.replace(R.id.content_frame, fragment1, "Customfragment1");
                ft.addToBackStack("Customfragment1");
                break;
            case 1:
                ft.replace(R.id.content_frame, fragment2, "Customfragment2");
                ft.addToBackStack("Customfragment2");
                break;
            }
            ft.commit();
            mDrawerLayout.closeDrawer(listView);
        }
}

关于android - SherlockNavigationDrawer(实现actionbarsherlock),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19998348/

相关文章:

android - 找不到 ActionBarSherlock ForceOverflow 资源

android - 如何从选项菜单中获取选项到标题栏 ActionBar Sherlock android

android - 找不到资源 ID?登录猫

java - 资源编译失败

android - 如何将 rest api 列表传递给 android 中的 fragment Activity

android - 包 com.actionbarsherlock.app 不存在

android - 无法恢复 Activity

android - ViewPager - 从 setOnTabSelectedListener 启动 Activity

android - fragment onActivityResult 返回 null

android - 在 ActionBar 中禁用 ShareActionProvider