Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.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
Java 使用导航抽屉显示片段_Java_Android_Xml_Fragment - Fatal编程技术网

Java 使用导航抽屉显示片段

Java 使用导航抽屉显示片段,java,android,xml,fragment,Java,Android,Xml,Fragment,我不知道如何通过单击导航抽屉中的一个项目来打开不同的片段 在MainActivity中,我使用以下代码: @SuppressWarnings(“StatementWithEmptyBody”) @凌驾 公共布尔值onNavigationItemSelected(MenuItem项){ 片段; int id=item.getItemId(); if(id==R.id.nav_列表视图){ FragmentTransaction ft=getSupportFragmentManager().beg

我不知道如何通过单击导航抽屉中的一个项目来打开不同的片段

在MainActivity中,我使用以下代码:

@SuppressWarnings(“StatementWithEmptyBody”)
@凌驾
公共布尔值onNavigationItemSelected(MenuItem项){
片段;
int id=item.getItemId();
if(id==R.id.nav_列表视图){
FragmentTransaction ft=getSupportFragmentManager().beginTransaction();
ft.replace(R.id.fragment,new listframent());
ft.commit();
}else if(id==R.id.nav\u添加数据){
}else if(id==R.id.nav_设置){
}else if(id==R.id.nav_法律信息){
}
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
抽屉。关闭抽屉(重力压缩机启动);
返回true;
}
试试这段代码

@SuppressWarnings(“StatementWithEmptyBody”)
@凌驾
公共布尔值onNavigationItemSelected(MenuItem项){
片段=空;
FragmentTransaction ft=getSupportFragmentManager().beginTransaction();
int id=item.getItemId();
if(id==R.id.nav_列表视图){
fragment=新的ListFragment();
}else if(id==R.id.nav\u添加数据){
}else if(id==R.id.nav_设置){
}else if(id==R.id.nav_法律信息){
}
ft.替换(R.id.容器、碎片);
ft.addToBackStack(空);
ft.commit();
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
抽屉。关闭抽屉(重力压缩机启动);
返回true;
}
试试这段代码

@SuppressWarnings(“StatementWithEmptyBody”)
@凌驾
公共布尔值onNavigationItemSelected(MenuItem项){
片段=空;
FragmentTransaction ft=getSupportFragmentManager().beginTransaction();
int id=item.getItemId();
if(id==R.id.nav_列表视图){
fragment=新的ListFragment();
}else if(id==R.id.nav\u添加数据){
}else if(id==R.id.nav_设置){
}else if(id==R.id.nav_法律信息){
}
ft.替换(R.id.容器、碎片);
ft.addToBackStack(空);
ft.commit();
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
抽屉。关闭抽屉(重力压缩机启动);
返回true;
}
试试这段代码

@SuppressWarnings(“StatementWithEmptyBody”)
@凌驾
公共布尔值onNavigationItemSelected(MenuItem项){
片段=空;
FragmentTransaction ft=getSupportFragmentManager().beginTransaction();
int id=item.getItemId();
if(id==R.id.nav_列表视图){
fragment=新的ListFragment();
}else if(id==R.id.nav\u添加数据){
}else if(id==R.id.nav_设置){
}else if(id==R.id.nav_法律信息){
}
ft.替换(R.id.容器、碎片);
ft.addToBackStack(空);
ft.commit();
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
抽屉。关闭抽屉(重力压缩机启动);
返回true;
}
试试这段代码

@SuppressWarnings(“StatementWithEmptyBody”)
@凌驾
公共布尔值onNavigationItemSelected(MenuItem项){
片段=空;
FragmentTransaction ft=getSupportFragmentManager().beginTransaction();
int id=item.getItemId();
if(id==R.id.nav_列表视图){
fragment=新的ListFragment();
}else if(id==R.id.nav\u添加数据){
}else if(id==R.id.nav_设置){
}else if(id==R.id.nav_法律信息){
}
ft.替换(R.id.容器、碎片);
ft.addToBackStack(空);
ft.commit();
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
抽屉。关闭抽屉(重力压缩机启动);
返回true;

}
Mhmm我找到了答案。但是我很困惑。 如果我使用:

if(id==R.id.nav\u列表视图){

fragment=new com.thomas.testapp.ListFragment();
Mhmm我找到了答案。但我感到困惑。 如果我使用:

if(id==R.id.nav\u列表视图){

fragment=new com.thomas.testapp.ListFragment();
Mhmm我找到了答案。但我感到困惑。 如果我使用:

if(id==R.id.nav\u列表视图){

fragment=new com.thomas.testapp.ListFragment();
Mhmm我找到了答案。但我感到困惑。 如果我使用:

if(id==R.id.nav\u列表视图){

fragment=new com.thomas.testapp.ListFragment();
请更改片段类ListFragment的名称,因为ListFragment已经是android.app中片段的子类软件包android操作系统

请更改片段类ListFragment的名称,因为ListFragment已经是android.app中片段的子类packageandroid OS

请更改片段类ListFragment的名称,因为ListFragment已经是android中片段的子类。apppackageandroid OS

请更改片段类ListFragment的名称,因为ListFragment已经是中片段的子类android.app软件包android操作系统

我建议创建更动态的代码

首先,如果您有自定义类来创建导航抽屉,请使用侦听器从活动中调用方法 有一个类调用HomeFragment extends Fragment,因此我们有:

if(condition){
    fragment = new HomeFragment();
    // if there is Listener
    if(mListener != null){
        mListener.someMethod
    }
    // Other Settings And Codes
}

我建议创建更动态的代码

首先,如果您有自定义类来创建导航抽屉,请使用侦听器从活动中调用方法 有一个类调用HomeFragment extends Fragment,因此我们有:

if(condition){
    fragment = new HomeFragment();
    // if there is Listener
    if(mListener != null){
        mListener.someMethod
    }
    // Other Settings And Codes
}

我建议创建更动态的代码

首先,如果您有自定义类来创建导航抽屉,请使用侦听器从活动中调用方法 有一个类调用HomeFragment extends Fragment,因此我们有:

if(condition){
    fragment = new HomeFragment();
    // if there is Listener
    if(mListener != null){
        mListener.someMethod
    }
    // Other Settings And Codes
}

我建议创建代码M
public class MainActivity extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener, FragmentOne.OnFragmentInteractionListener ,FragmentTwo.OnFragmentInteractionListener,FragmentThree.OnFragmentInteractionListener {
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();
    Fragment fragment = null;
    Class fragmentClass = null;
    if (id == R.id.nav_camera) {
        fragmentClass = FragmentOne.class;
    } else if (id == R.id.nav_gallery) {
        fragmentClass = FragmentTwo.class;
    } else if (id == R.id.nav_slideshow) {
        fragmentClass = FragmentThree.class;
    } else if (id == R.id.nav_manage) {

    } else if (id == R.id.nav_share) {

    } else if (id == R.id.nav_send) {

    }
    try {
        fragment = (Fragment) fragmentClass.newInstance();
    } catch (Exception e) {
        e.printStackTrace();
    }
    FragmentManager fragmentManager = getSupportFragmentManager();
    fragmentManager.beginTransaction().replace(R.id.flContent, fragment).commit();

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}
protected void onCreate(Bundle savedInstanceState) {
    ...
    if (savedInstanceState == null) {
        //Fragment load code
    }
    ...
}
public class MainActivity extends AppCompatActivity {



// ...



@Override

protected void onCreate(Bundle savedInstanceState) {

    // ...From section above...

    // Find our drawer view

    nvDrawer = (NavigationView) findViewById(R.id.nvView);

    // Setup drawer view

    setupDrawerContent(nvDrawer);

}



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) {

    // Create a new fragment and specify the fragment to show based on nav item clicked

    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();

    }



    // Insert the fragment by replacing any existing fragment

    FragmentManager fragmentManager = getSupportFragmentManager();

    fragmentManager.beginTransaction().replace(R.id.flContent, fragment).commit();



    // Highlight the selected item has been done by NavigationView

    menuItem.setChecked(true);

    // Set action bar title

    setTitle(menuItem.getTitle());

    // Close the navigation drawer

    mDrawer.closeDrawers();

}



// ...