C# Xamarin-Android-从导航视图打开项目?
对于Xamarin Android来说,这是一个全新的概念。不确定如何从下面的if语句中调用另一个视图/页面-我见过其他人使用fragment或case语句,但我只是在学习,所以不想做太多更改。这是VS17的基本导航抽屉模板C# Xamarin-Android-从导航视图打开项目?,c#,android,xamarin.android,navigation-drawer,C#,Android,Xamarin.android,Navigation Drawer,对于Xamarin Android来说,这是一个全新的概念。不确定如何从下面的if语句中调用另一个视图/页面-我见过其他人使用fragment或case语句,但我只是在学习,所以不想做太多更改。这是VS17的基本导航抽屉模板 protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetCont
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();
NavigationView navigationView = FindViewById<NavigationView>(Resource.Id.nav_view);
navigationView.SetNavigationItemSelectedListener(this);
}
protectedoverride void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_main);
Android.Support.V7.Widget.Toolbar-Toolbar=findviewbyd(Resource.Id.Toolbar);
设置支持操作栏(工具栏);
FloatingActionButton fab=FindViewById(Resource.Id.fab);
生产线点击+=生产线点击;
抽屉布局抽屉=FindViewById(Resource.Id.drawer\u布局);
ActionBarDrawerToggle toggle=新建ActionBarDrawerToggle(此,抽屉,工具栏,Resource.String.navigation\u抽屉\u打开,Resource.String.navigation\u抽屉\u关闭);
抽屉。添加抽屉链接器(切换);
toggle.SyncState();
NavigationView NavigationView=FindViewById(Resource.Id.nav_视图);
navigationView.SetNavigationItemSelectedListener(此);
}
下面是我重构到的if语句-我试图理解如何在选中时从这里打开另一个活动或视图
public bool OnNavigationItemSelected(IMenuItem item)
{
int id = item.ItemId;
if (id == Resource.Id.nav_support)
{
}
else if (id == Resource.Id.nav_housing)
{
}
else if (id == Resource.Id.nav_council)
{
}
else if (id == Resource.Id.nav_education)
{
}
else if (id == Resource.Id.nav_employment)
{
}
else if (id == Resource.Id.nav_transport)
{
}
else if (id == Resource.Id.nav_policing)
{
}
else if (id == Resource.Id.nav_fire)
{
}
else if (id == Resource.Id.nav_medical)
{
}
DrawerLayout drawer = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
drawer.CloseDrawer(GravityCompat.Start);
return true;
}
}
public bool OnNavigationItemSelected(IMenuItem)
{
int id=item.ItemId;
if(id==Resource.id.nav_支持)
{
}
else if(id==Resource.id.nav_)
{
}
else if(id==Resource.id.nav_council)
{
}
else if(id==Resource.id.nav_教育)
{
}
else if(id==Resource.id.nav_就业)
{
}
else if(id==Resource.id.nav_传输)
{
}
else if(id==Resource.id.nav_policing)
{
}
else if(id==Resource.id.nav_fire)
{
}
else if(id==Resource.id.nav_medical)
{
}
抽屉布局抽屉=FindViewById(Resource.Id.drawer\u布局);
抽屉。关闭抽屉(重力压缩机启动);
返回true;
}
}
您可以使用intent
在另一个活动中打开另一个活动。例如:
public class MyNavigationItemSelectedListener : Java.Lang.Object, NavigationView.IOnNavigationItemSelectedListener
{
Context context;
public MyNavigationItemSelectedListener(Context context)
{
this.context = context;
}
bool NavigationView.IOnNavigationItemSelectedListener.OnNavigationItemSelected(IMenuItem item)
{
int id = item.ItemId;
if (id == Resource.Id.nav_support)
{
Intent intent = new Intent(context, typeof(SupportActivity)); //the activity you want to open
context.StartActivity(intent);
}
///Other code
///...
///...
///...
}
}