【问题标题】:How do I go to a specific fragment by clicking on something?如何通过单击某些内容转到特定片段?
【发布时间】:2013-09-02 10:40:14
【问题描述】:

例如,我有一个导航抽屉,我希望能够通过单击其中的项目直接导航到抽屉。这是我的代码。

    mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            // TODO Auto-generated method stub
            //What do I put here??

        }


    });

我应该放什么,这样当用户点击导航抽屉中的东西时,应用程序会直接跳转到选定的片段?

谢谢!

编辑:我想我设法解决了这个问题,但由于我的应用程序使用 ViewPager 浏览片段,所以我只使用

    mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            // TODO Auto-generated method stub

            viewPager.setCurrentItem(arg2);
                // Close drawer

        }


    });

这行得通!

【问题讨论】:

    标签: android android-fragments navigation-drawer


    【解决方案1】:

    在 OnItemClick 中试试这段代码:

        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        // Locate Position
        switch (arg2) {
        case 0:
            ft.replace(R.id.content_frame, yourFragment1);
            break;
        case 1:
            ft.replace(R.id.content_frame, yourFragment2);
            break;
        case 2:
            ft.replace(R.id.content_frame, yourFragment3);
            break;
               // etc add more code if you want//
        }
        /* Commit fragment */
        ft.commit();
        mDrawerList.setItemChecked(position, true);
        // Close drawer
        mDrawerLayout.closeDrawer(mDrawerList);
    

    【讨论】:

    • Hmm.. 我应该在 containerViewId 参数中添加什么?我尝试添加我的片段所在的布局,但它强制关闭。
    • 您应该在主要活动的 XML 中添加 FrameLayout。如果你有这样的 ` `,那就是添加到 containerViewId 参数中的那个。跨度>
    猜你喜欢
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多