簡體   English   中英

Android:從導航抽屜打開片段

[英]Android:open fragment from Navigation drawer

我創建了一個導航抽屜和一個片段,我試圖從導航抽屜中打開該片段,但是請沒有任何幫助。

@Override
public void onNavigationDrawerItemSelected(int position) {
    // update the main by replacing fragments
    Fragment fragment;
    switch(position){
        case 0: //search//todo
            break;
        case 1: //stats
            break;
        case 2: //my account //todo
            break;
        case 3: //settings //todo
            break;
        case 4: //location //todo
            fragment = getFragmentManager().findFragmentByTag(LocationFragment.TAG);
            if (fragment == null) {
                fragment = new LocationFragment();
            }
            getFragmentManager().beginTransaction().replace(R.id.container, fragment, LocationFragment.TAG).commit();
            break;
    }

我更改了一些代碼,這應該可以工作。 如有任何問題,請隨時發表評論。 您找不到位置片段,因為它沒有setTag

@Override
public void onNavigationDrawerItemSelected(int position) {
    // update the main by replacing fragments
    Fragment fragment;
    String fragmentName;
    switch(position) {
        case 0: //search//todo
            fragment = new SearchFragment();
            fragmentName = "SearchFragment";
            break;
        case 1: //stats
            fragment = new StatFragment();
            fragmentName = "StatFragment";
            break;
        case 2: //my account //todo
            fragment = new MyAccountFragment();
            fragmentName = "MyAccountFragment";
            break;
        case 3: //settings //todo
            fragment = new SettingsFragment();
            fragmentName = "SettingsFragment";
            break;
        case 4: //location //todo
            fragment = new LocationFragment();
            fragmentName = "LocationFragment";
            break;
    }
    if (fragment != null) {
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.container, fragment, fragmentName).commit();
        mDrawerList.setItemChecked(position, true);
        mDrawerList.setSelection(position);
        mDrawerLayout.closeDrawer(mDrawerRelativeLayout);
    } else {
        mDrawerLayout.closeDrawer(mDrawerRelativeLayout);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM