Xamarin 访问其他视图上的数据
Xamarin Access Data on Other Views
我在访问其他视图中的数据时遇到了一个小问题,所以这是代码。
按钮
Button button2 = FindViewById<Button>(Resource.Id.addExpereince);
按钮点击
button2.Click += (sender, e) =>{
EditText addCompany = FindViewById<EditText>(Resource.Id.addCompanyName);
EditText addDate = FindViewById<EditText>(Resource.Id.addDate);
EditText addPosition = FindViewById<EditText>(Resource.Id.addPosition);
AddExpreince(1, addCompany.Text, addPosition.Text, addDate.Text);
SetContentView(Resource.Layout.Main);
};
我想学习如何解决这个问题。 button和EditText在其他view上,其实我不需要它们在主view中工作,我只需要在MainActivity中初始化代码,这样它们就可以在其他view中使用了。
为了更好地参考我收到的错误:
System.NullReferenceException: Object reference not set to an instance of an object.
System.NullReferenceException: Object reference not set to an instance of an object.
您应该先使用 SetContentView()
,根据文档:
Set the activity content from a layout resource. The resource will be inflated, adding all top-level views to the activity.
如果您没有先向 Activity
添加布局,您的 Activity
基本上是空的 window。因此,当您使用 FindViewById
方法时,您将得到一个 NullReferenceException
异常。
解决方案:
像这样修改您的代码:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
// Get our button from the layout resource,
// and attach an event to it
Button button2 = FindViewById<Button>(Resource.Id.addExpereince);
EditText addCompany = FindViewById<EditText>(Resource.Id.addCompanyName);
EditText addDate = FindViewById<EditText>(Resource.Id.addDate);
EditText addPosition = FindViewById<EditText>(Resource.Id.addPosition);
button2.Click += (sender, e) =>
{
AddExpreince(1, addCompany.Text, addPosition.Text, addDate.Text);
};
}
我在访问其他视图中的数据时遇到了一个小问题,所以这是代码。
按钮
Button button2 = FindViewById<Button>(Resource.Id.addExpereince);
按钮点击
button2.Click += (sender, e) =>{
EditText addCompany = FindViewById<EditText>(Resource.Id.addCompanyName);
EditText addDate = FindViewById<EditText>(Resource.Id.addDate);
EditText addPosition = FindViewById<EditText>(Resource.Id.addPosition);
AddExpreince(1, addCompany.Text, addPosition.Text, addDate.Text);
SetContentView(Resource.Layout.Main);
};
我想学习如何解决这个问题。 button和EditText在其他view上,其实我不需要它们在主view中工作,我只需要在MainActivity中初始化代码,这样它们就可以在其他view中使用了。
为了更好地参考我收到的错误:
System.NullReferenceException: Object reference not set to an instance of an object.
System.NullReferenceException: Object reference not set to an instance of an object.
您应该先使用 SetContentView()
,根据文档:
Set the activity content from a layout resource. The resource will be inflated, adding all top-level views to the activity.
如果您没有先向 Activity
添加布局,您的 Activity
基本上是空的 window。因此,当您使用 FindViewById
方法时,您将得到一个 NullReferenceException
异常。
解决方案:
像这样修改您的代码:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
// Get our button from the layout resource,
// and attach an event to it
Button button2 = FindViewById<Button>(Resource.Id.addExpereince);
EditText addCompany = FindViewById<EditText>(Resource.Id.addCompanyName);
EditText addDate = FindViewById<EditText>(Resource.Id.addDate);
EditText addPosition = FindViewById<EditText>(Resource.Id.addPosition);
button2.Click += (sender, e) =>
{
AddExpreince(1, addCompany.Text, addPosition.Text, addDate.Text);
};
}