Android 用导航抽屉项替换片段的内容单击

Android 用导航抽屉项替换片段的内容单击,android,android-fragments,navigation,navigation-drawer,Android,Android Fragments,Navigation,Navigation Drawer,这就是我要做的测试。我不知道能不能做到。 我试图做的是,当用户单击导航抽屉项时,我想更改片段的内容。我没有使用不同的片段,实际上我只使用了一个片段 我想要实现的是,当用户单击抽屉菜单项时,片段应该按照单击显示数据,为简单起见,只需在片段中显示菜单项的名称 通过使用单个片段,我希望通过单击不同的菜单项来获得不同的内容 导航抽屉中的菜单项是动态创建的,目的是从数据库中显示,菜单项的数量可以是可变的 编辑: 导航性 public class NavigationActivity extends App

这就是我要做的测试。我不知道能不能做到。 我试图做的是,当用户单击导航抽屉项时,我想更改片段的内容。我没有使用不同的片段,实际上我只使用了一个片段

我想要实现的是,当用户单击抽屉菜单项时,片段应该按照单击显示数据,为简单起见,只需在片段中显示菜单项的名称

通过使用单个片段,我希望通过单击不同的菜单项来获得不同的内容

导航抽屉中的菜单项是动态创建的,目的是从数据库中显示,菜单项的数量可以是可变的

编辑: 导航性

public class NavigationActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {

DrawerLayout drawer;
FragmentManager fragmentManager;
Fragment testFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_navigation);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });

    drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);

    final Menu menu = navigationView.getMenu();
    for (int i = 1; i <= 10; i++) {
        menu.add(0,i,0,"Set "+ i);
    }

    fragmentManager = getSupportFragmentManager();
    testFragment = new TestFragment();

}

@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
}

@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();


    for (int i = 0; i<10; i++) {
            // Handle the camera action
        if (id == i){
            Bundle bundle = new Bundle();
            bundle.putString("SET_ID", "this is test"+i);
            // set Fragmentclass Arguments
            testFragment.setArguments(bundle);
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.frame_container, testFragment).commit();

        }

    }


    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}

}

尝试在lopp的
onNavigationItemSelected
内添加下面的一行

testFragment = new TestFragment(); // this line
例如:

@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();


for (int i = 0; i<10; i++) {
        // Handle the camera action
    if (id == i){
        Bundle bundle = new Bundle();
        bundle.putString("SET_ID", "this is test"+i);
        // set Fragmentclass Arguments
        testFragment = new TestFragment(); // add this line in your code.
        testFragment.setArguments(bundle);
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.frame_container, testFragment).commit();
    }
}
@SuppressWarnings(“StatementWithEmptyBody”)
@凌驾
公共布尔值onNavigationItemSelected(MenuItem项){
//处理导航视图项单击此处。
int id=item.getItemId();

对于(int i=0;i您尝试了什么?粘贴您尝试的代码…@AmitJangid,我已经用代码更新了问题。我试图实现的是使用动态创建的菜单项更改单个片段的内容。实际上,我希望在单击每个菜单项时显示不同的recyclerview。仅为了测试,我使用用户单击菜单项时显示的菜单项。
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();


for (int i = 0; i<10; i++) {
        // Handle the camera action
    if (id == i){
        Bundle bundle = new Bundle();
        bundle.putString("SET_ID", "this is test"+i);
        // set Fragmentclass Arguments
        testFragment = new TestFragment(); // add this line in your code.
        testFragment.setArguments(bundle);
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.frame_container, testFragment).commit();
    }
}