Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android FragmentDrawer FragmentDrawer=getActivity()。getSupportFragmentManager()显示我的编码错误_Android_Android Fragments_Android Activity - Fatal编程技术网

Android FragmentDrawer FragmentDrawer=getActivity()。getSupportFragmentManager()显示我的编码错误

Android FragmentDrawer FragmentDrawer=getActivity()。getSupportFragmentManager()显示我的编码错误,android,android-fragments,android-activity,Android,Android Fragments,Android Activity,在下一个代码中: import android.support.v4.app.Fragment; import android.content.res.Configuration; import android.support.design.widget.NavigationView; import android.support.v4.app.FragmentManager; import android.support.v4.app.DialogFragmen

在下一个代码中:

import android.support.v4.app.Fragment;
    import android.content.res.Configuration;
    import android.support.design.widget.NavigationView;
    import android.support.v4.app.FragmentManager;
    import android.support.v4.app.DialogFragment;
    import android.support.v7.app.ActionBar;
    import android.app.Activity;
    import android.os.Bundle;
    import android.support.v4.view.GravityCompat;
    import android.support.v4.widget.DrawerLayout;
    import android.support.v7.app.ActionBarDrawerToggle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.support.v7.widget.Toolbar;

    public class MainActivity extends AppCompatActivity {
        private DrawerLayout mDrawer;
        private Toolbar toolbar;
        private DrawerLayout dlDrawer;
        private ActionBarDrawerToggle drawerToggle;
        private NavigationView nvDrawer;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            toolbar=(Toolbar)findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);

            mDrawer =(DrawerLayout)findViewById(R.id.drawer_layout);
            dlDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            drawerToggle = setupDrawerToggle();
            nvDrawer = (NavigationView) findViewById(R.id.nvView);
            setupDrawerContent(nvDrawer);
            final ActionBar ab=getSupportActionBar();
            ab.setHomeAsUpIndicator(R.drawable.ic_one);
            ab.setDefaultDisplayHomeAsUpEnabled(true);

            dlDrawer.setDrawerListener(drawerToggle);

        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {

            getMenuInflater().inflate(R.menu.drawer_view, menu);
            return true;
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch(item.getItemId())
            {
                case R.id.home:
                    mDrawer.openDrawer(GravityCompat.START);
            }
            return super.onOptionsItemSelected(item);
        }

        @Override
        protected void onPostCreate(Bundle savedInstanceState) {
            super.onPostCreate(savedInstanceState);
            drawerToggle.syncState();

        }

        @Override
        public void onConfigurationChanged(Configuration newConfig) {
            super.onConfigurationChanged(newConfig);
            drawerToggle.onConfigurationChanged(newConfig);
        }

        private void setupDrawerContent(NavigationView navigationView) {
            navigationView.setNavigationItemSelectedListener(
                    new NavigationView.OnNavigationItemSelectedListener() {
                        @Override
                        public boolean onNavigationItemSelected(MenuItem menuItem) {
                            selectDrawerItem(menuItem);
                            return true;
                        }
                    });
        }

        public void selectDrawerItem(MenuItem menuItem) {
            Fragment fragment = null;
            Class fragmentClass;
            switch(menuItem.getItemId()) {
                case R.id.nav_first_fragment:
                    fragmentClass = FirstFragment.class;
                    break;
                case R.id.nav_second_fragment:
                    fragmentClass = SecondFragment.class;
                    break;
                case R.id.nav_third_fragment:
                    fragmentClass = ThirdFragment.class;
                    break;
                default:
                    fragmentClass = FirstFragment.class;
            }

            try {
                fragment = (Fragment) fragmentClass.newInstance();
            } catch (Exception e) {
                e.printStackTrace();
            }


            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            fragmentManager.beginTransaction().replace(R.id.flContent, fragment).commit();

            menuItem.setChecked(true);
            setTitle(menuItem.getTitle());
            mDrawer.closeDrawers();
        }

        private ActionBarDrawerToggle setupDrawerToggle() {
            return new ActionBarDrawerToggle(this, dlDrawer, toolbar, R.string.drawer_open,  R.string.drawer_close);
           }

       }
App_main.xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/main_activity_appbar">
    <include layout="@layout/app_bar"
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"></include>

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        xmlns:android="http://schemas.android.com/apk/res/android"
      >
        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#E3F2FD"
            android:id="@+id/main_container"
            >
        <fragment
            android:id="@+id/nav_drawer"
            android:name="askselva.com.sampematerial.NavigationDrawerFragment"
            android:layout_width="280dp"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            tools:layout="@layout/fragment_navigation_drawer"></fragment>
        </FrameLayout>
    </android.support.v4.widget.DrawerLayout>

</LinearLayout>
这是我在LogCat中遇到的错误,我在如何解决这个问题中遇到了错误。我应该如何在活动中使用片段。片段活动还是活动?我是新手,请帮帮我。。 提前谢谢

getActivity()在fragment类中可用。由于您的活动中已经存在u r,只需删除对getActivity()的调用。片段管理器的Ur代码将是

FragmentManager fragmentManager = getSupportFragmentManager();
此外,我们的mainactivity应该扩展FragmentActivity,以获得一个SupportFragmentManager实例。i、 e

public class MainActivity extends FragmentActivity {
在继续之前,您还需要学习片段的基础知识


有关详细信息,请查看此链接。

请提示我清除此错误。。
public class MainActivity extends FragmentActivity {