我已经使用以下方法处理导航抽屉点击:
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.nav_camera) {
// desired fragment to load
}
我想要的是当我打开应用程序时,首先要检查用户是否已经登录,这可以使用共享首选项来完成。如果是,则打开应用程序正常工作的主页面。但是,如果他不是,那么我想显示Login Fragment Page。
我想通过仅使用导航抽屉活动创建项目时提供的活动来实现此目的。任何解决方案?
项目活动:
1.家庭活动是主要活动。
2.内部活动,仅在用户点击导航抽屉列表时管理碎片。
答案 0 :(得分:0)
这样做:
Fragment fragment = null;
if(userIsLoggedIn(){ //Check from SharedPreference
fragment = new MainFragment();
} else {
fragment = new LoginFragment();
}
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.container, fragment, CURRENT_TAG);
fragmentTransaction.commitAllowingStateLoss();
答案 1 :(得分:0)
试试这个,
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
Fragment fragment = null;
switch (id) {
case R.id.nav_camera:
fragment = new CameraFragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.main, fragment).commit();
assert drawer != null;
drawer.closeDrawer(GravityCompat.START);
}
return true;
}