[英]Unable to load fragments from the navigation drawer menu item
嗨,我是一名学生,正在尝试构建一个应用程序。 我想通过在导航抽屉上点击进入主要活动来加载片段。 我能够将导航抽屉附加到家庭活动中。 但是使用以下代码,我无法在活动中加载片段。 “ loadDashboard”功能工作正常,但“ onNavigationItemSelected”方法无效。 请帮助...代码在下面...
public class HomeActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
loadDashboad();
NavigationView nv = findViewById(R.id.navigation_view);
nv.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.menuitemdashboard:
getSupportFragmentManager().beginTransaction().replace(R.id.viewContainer, new dashboard()).commit();
break;
case R.id.menuitemlogout:
break;
case R.id.menuitemprofile:
break;
case R.id.menuitemreports:
break;
case R.id.menuitemvisits:
getSupportFragmentManager().beginTransaction().replace(R.id.viewContainer, new visits()).commit();
break;
}
return true;
}
});
}
private void loadDashboad() {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
dashboard dash = new dashboard();
ft.add(R.id.viewContainer, dash);
ft.commit();
}
}
您的代码很好,您所缺少的是为导航菜单项提供功能。 将以下行替换为要添加的片段
FragmentManager fm = getSupportFragmentManager();
switch (item.getItemId()) {
case R.id.menuitemdashboard:
fm.beginTransaction().replace(R.id.viewContainer, new dashboard()).commit();
break;
case R.id.menuitemlogout:
//TODO replace logout with fragment
fm.beginTransaction().replace(R.id.viewContainer, //*log out*/).commit();
break;
case R.id.menuitemprofile:
//TODO replace profile with fragment
fm.beginTransaction().replace(R.id.viewContainer, //*profile*/).commit();
break;
case R.id.menuitemreports:
//TODO replace reports with fragment
fm.beginTransaction().replace(R.id.viewContainer, //*reports*/).commit();
break;
case R.id.menuitemvisits:
fmbeginTransaction().replace(R.id.viewContainer, new visits()).commit();
break;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.