C# FindViewByID在嵌套视图上返回null
我有一个Xamarin.Android应用程序,它有一个导航绘图,结构如下: activity_main.xaml:C# FindViewByID在嵌套视图上返回null,c#,android,xamarin,xamarin.android,C#,Android,Xamarin,Xamarin.android,我有一个Xamarin.Android应用程序,它有一个导航绘图,结构如下: activity_main.xaml: nav_header_main.xaml: 我正在尝试获取文本视图@+id/Name但是FindViewById(Resource.id.RunnerName)始终返回null: protectedoverride void OnCreate(Bundle savedInstanceState) { SetContentView(Resource.Layout.activ
nav_header_main.xaml:
我正在尝试获取文本视图@+id/Name
但是FindViewById(Resource.id.RunnerName)
始终返回null
:
protectedoverride void OnCreate(Bundle savedInstanceState)
{
SetContentView(Resource.Layout.activity_main);
抽屉布局抽屉=FindViewById(Resource.Id.drawer\u布局);
//有抽屉的东西`
NavigationView NavigationView=FindViewById(Resource.Id.nav_视图);
navigationView.SetNavigationItemSelectedListener(此);
//这始终返回空值:
TextView runnerName=FindViewById(Resource.Id.runnerName);
}
我做错了什么?同意Mike的观点,如果你想在
NavigationView
中获得Textview
,你应该通过NavigationView.GetHeaderView(0)获得视图
,然后您可以使用以下代码获取TextView
NavigationView navigationView = FindViewById<NavigationView>(Resource.Id.nav_view);
navigationView.SetNavigationItemSelectedListener(this);
View MyView=navigationView.GetHeaderView(0);
TextView textView1 = MyView.FindViewById<TextView>(Resource.Id.textView1);
NavigationView-NavigationView=findviewbyd(Resource.Id.nav_视图);
navigationView.SetNavigationItemSelectedListener(此);
View MyView=navigationView.GetHeaderView(0);
TextView textView1=MyView.FindViewById(Resource.Id.textView1);
下面是跑步截图
在
OnCreate()
中,您必须在navigationView.GetHeaderView(0)
上调用FindViewById()
,以获取navigationView
标题中的任何视图。加载并附加到活动
的层次结构需要一点时间,因此在活动
上调用FindViewById()
将返回null。谢谢Mike,这很有意义。