Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.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
C# NavigationView SetCheckedItem不会触发OnNavigationItemSelected_C#_Android_Xamarin.android - Fatal编程技术网

C# NavigationView SetCheckedItem不会触发OnNavigationItemSelected

C# NavigationView SetCheckedItem不会触发OnNavigationItemSelected,c#,android,xamarin.android,C#,Android,Xamarin.android,我想在应用程序启动时在导航抽屉中选择一个特定项目。 我添加了navigationView.SetCheckedItem(Resource.Id.nav_gallery) protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.activity_main

我想在应用程序启动时在导航抽屉中选择一个特定项目。 我添加了
navigationView.SetCheckedItem(Resource.Id.nav_gallery)

    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        SetContentView(Resource.Layout.activity_main);
        Android.Support.V7.Widget.Toolbar toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
        SetSupportActionBar(toolbar);

        FloatingActionButton fab = FindViewById<FloatingActionButton>(Resource.Id.fab);
        fab.Click += FabOnClick;

        DrawerLayout drawer = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, Resource.String.navigation_drawer_open, Resource.String.navigation_drawer_close);
        drawer.AddDrawerListener(toggle);
        toggle.SyncState();

        var navigationView = FindViewById<NavigationView>(Resource.Id.nav_view);
        navigationView.SetNavigationItemSelectedListener(this);

        navigationView.SetCheckedItem(Resource.Id.nav_gallery);

    }
如果我单击导航项目
OnNavigationItemSelected
,则会调用导航项目,并且一切正常。 选择默认项的正确方法是什么

更新

我加上这一行就解决了。单击特定项

 navigationView.Menu.PerformIdentifierAction(Resource.Id.nav_gallery, 0);
您可以创建一个函数

 public void selectDrawerItem(int position, String tag) {

    switch (position) {

        case 0:
            fragment = new DashboardFragment();
            tvToolbarTitleLand.setText("Dashboard");
            break;

         //code.................
    }

    if (fragment != null) {

        FragmentTransaction transaction = manager.beginTransaction();
        transaction.setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_right);
        transaction.replace(R.id.flMainContainer, fragment);
        transaction.addToBackStack(tag);
        transaction.commit();
    }

    navigationView.getMenu().getItem(position).setChecked(true);
}

如果您对此有任何疑问,请告诉我

您可以创建一个函数

 public void selectDrawerItem(int position, String tag) {

    switch (position) {

        case 0:
            fragment = new DashboardFragment();
            tvToolbarTitleLand.setText("Dashboard");
            break;

         //code.................
    }

    if (fragment != null) {

        FragmentTransaction transaction = manager.beginTransaction();
        transaction.setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_right);
        transaction.replace(R.id.flMainContainer, fragment);
        transaction.addToBackStack(tag);
        transaction.commit();
    }

    navigationView.getMenu().getItem(position).setChecked(true);
}

如果您对此有任何疑问,请告诉我

以编程方式选择该项 //在启动时设置仪表板

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();

    fragmentTransaction.replace(R.id.frame, new DashboardFragment());
    fragmentTransaction.commit();

    setNavDrawer();
}

//CREATE A NavDrawer() void

private void set NavDrawer(){
toolbar = (toolbar) findViewById(r.i.d.toolbar);

setsupportactionbar(toolbar);

navigationView.setNavigationItemSelected(memuItem)





  {

if (menuItems.isChecked()) menuItem.setChecked(false);



 else menuItem.setChecked(true);

drawerlayout.closeDrawers();


//now checlk which items are being clicked 
//并采取适当行动

if (menuItem.isChecked()) menuItem.setChecked(false);
            

else menuItem.setChecked(true);


 switch (menuItem.getItemId()) {

 case R.id.home:

                    DashboardFragment dashboardFragment = new DashboardFragment();
                    FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
                    fragmentTransaction.replace(R.id.frame, dashboardFragment,"DASHBOARD_FRAGMENT");
                    fragmentTransaction.commit();
                    return true;
以编程方式选择该项 //在启动时设置仪表板

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();

    fragmentTransaction.replace(R.id.frame, new DashboardFragment());
    fragmentTransaction.commit();

    setNavDrawer();
}

//CREATE A NavDrawer() void

private void set NavDrawer(){
toolbar = (toolbar) findViewById(r.i.d.toolbar);

setsupportactionbar(toolbar);

navigationView.setNavigationItemSelected(memuItem)





  {

if (menuItems.isChecked()) menuItem.setChecked(false);



 else menuItem.setChecked(true);

drawerlayout.closeDrawers();


//now checlk which items are being clicked 
//并采取适当行动

if (menuItem.isChecked()) menuItem.setChecked(false);
            

else menuItem.setChecked(true);


 switch (menuItem.getItemId()) {

 case R.id.home:

                    DashboardFragment dashboardFragment = new DashboardFragment();
                    FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
                    fragmentTransaction.replace(R.id.frame, dashboardFragment,"DASHBOARD_FRAGMENT");
                    fragmentTransaction.commit();
                    return true;