我是android开发的新手,一直在开发我的第一个应用程序,遇到了一个非常简单的复杂问题,但我似乎无法解决它,我遇到的大多数在线资源已经过时,包括不推荐的方法。也就是说,在这个问题上:
在mainactivity.java中,我使用了一个侧抽屉导航,它允许我在片段之间移动。代码如下:
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch(item.getItemId()) {
case R.id.nav_home:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new HomeFragment()).commit();
break;
case R.id.nav_account:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new AccountFragment()).commit();
break;
case R.id.nav_goals:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new GoalsFragment()).commit();
break;
case R.id.nav_progress:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new ProgressFragment()).commit();
break;
case R.id.nav_food_diary:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new FoodDiaryFragment()).commit();
break;
case R.id.nav_nutrition:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new NutritionFragment()).commit();
break;
case R.id.nav_settings:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new SettingsFragment()).commit();
break;
}
drawer.closeDrawer(GravityCompat.START);
return true;
}
所有这些片段之间的导航工作得非常好。但我的问题是,我有一个按钮存在于这些片段中的一个片段上,我想用它将我带到另一个无法通过导航抽屉访问的片段。我们称之为 fragment_profile
. 是否可以使用onclick按钮从现有片段导航到这个新片段。
任何帮助都将不胜感激。
2条答案
按热度按时间fkvaft9z1#
加上维卡斯说的话。他说,当你需要从一个活动变成碎片时,你需要
getSupportFragmentManager()
就像下面一样注意我们需要如何在课堂上通过考试
ProfileFragment()
这里,它的布局fragment_profile
将根据您的设置自行加载ProfileFragment()
与fragment_profile
布局。下一步你可能在将来想从一个
Fragment
在这种情况下,您只需添加getActivity()
在getFragmentManager()
,所以会变成7gs2gvoe2#
把一个碎片放到屏幕上你只需要一个碎片管理员。正如您在代码中看到的,当单击导航中的某个选项时,您是如何更改的,然后您正在调用
用所选片段替换现有片段。完全一样,当用户点击按钮如下。
唯一需要注意的是,宿主应该有片段容器
fragment_container
就这样。