Android在应用启动时加载片段

时间:2013-11-05 02:00:03

标签: java android fragment runnable navigation-drawer

我正在尝试使用导航抽屉让我选择不同类型的片段。 我实现了一个Runnable()线程,以便在片段更改时转换更平滑。 然而,在我实现之后,它不会在开始时加载默认片段,这意味着它将显示为空白,我必须单击导航抽屉以在srart上显示某些内容。

我希望它能够在应用程序开头的菜单上显示第一项(菜单0)

以下是一些代码段

private class DrawerItemClickListener implements
        ListView.OnItemClickListener {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
        selectItem(position);
    }
}

private void selectItem(final int position) {
     mPendingRunnable = new Runnable() {
            @Override
            public void run() {
    // update the main content by replacing fragments
                changeFragment(position);
            }
        };

    // update selected item and title, then close the drawer
    // update the main content by replacing fragments

    // update selected item and title, then close the drawer
    mDrawerList.setItemChecked(position, true);
    setTitle(mPAGETitles[position]);
    mDrawerLayout.closeDrawer(mDrawerList);
}

private void changeFragment(final int position)
{
    Fragment fragment = new PageFragment(MainActivity.this);
    Bundle args = new Bundle();
    args.putInt(PageFragment.ARG_PAGE_NUMBER, position);
    fragment.setArguments(args);
    FragmentManager fragmentManager = getFragmentManager();
    fragmentManager.beginTransaction().replace(R.id.content_frame,     
 fragment).commit();
    fragmentChanged =true;
}

public void onDrawerClosed(View view) {
            getActionBar().setTitle(mTitle);
            invalidateOptionsMenu(); // creates call to
                                        //     
 onPrepareOptionsMenu()

            if (mPendingRunnable != null) {
                Handler mHandler = new Handler();
                mHandler.post(mPendingRunnable);
                mPendingRunnable = null;
            }
            progress = ProgressDialog.show(MainActivity.this,
                    "Downloading Data",
                    "Please wait while Data are downloaded");
            progress.setCancelable(false);
            progress.isIndeterminate();
            progress.show();
        }

1 个答案:

答案 0 :(得分:0)

您必须在活动的onCreate方法中加载第一个片段。当用户从naviagtion抽屉菜单中选择一个选项时,您将使用新的片段布局替换现有的片段布局。