在微调项选择后填充文本视图(C#、Xamarin、Android)
Populating a textview after spinner item selection (C#, Xamarin, Android)
我知道这是一个非常基本的问题,但我似乎无法用我有限的 C#/Android 应用程序功能来克服它。
编辑:总而言之,我有一个在select编辑微调项时调用的方法。在那种方法中,我通过数据库调用获得了一堆文本。我希望能够在我的 OnCreate 中访问该文本列表,以便我可以使用它来填充文本视图(以及其他内容)
在我的代码中,我有一个用户 select 来自微调器的值。当他们 select 它时,我启动了一些代码,使用微调器 selection 来查询 SQL 数据库并拆分成一个名为 dataList 的字符串数组,如下所示:
protected override void OnCreate(Bundle bundle)
{
//Not showing you lots of stuff, because its irrelevant
Spinner RiderSelectSpinner = FindViewById<Spinner>(Resource.Id.RiderSelectSpinner);
TextView FCompStock = FindViewById<TextView>(Resource.Id.FCompStock);
RiderSelectSpinner.ItemSelected += rider_Selected;
}
public void rider_Selected(object sender, AdapterView.ItemSelectedEventArgs e) {
//Not showing you many database things because its not relevant
if (!string.IsNullOrEmpty(dataString))
{
string[] dataList = dataString.Split(',');
}
}
这是关键,也是我的问题。我想将我的 dataList 的某些值显示为在 OnCreate 中定义的文本视图。我的文本视图(当然)在我的 rider_Selected 方法中没有上下文。本质上,我想在上面定义 dataList 之后添加以下内容:
FCompStock.Text = dataList[0];
我试图通过在主 activity 中定义 dataList 来制定解决方案,从而使其可用于 onCreate 和我的方法,但我需要一个事件来触发填充文本视图。我还尝试简单地制定允许我将 dataList 传回调用它的地方的方法,但那里也没有骰子。
有人可以指导我如何将 dataList 传回原始调用,或者可能如何创建一个事件来填充文本视图吗?
您可以在 onCreate 方法之外将您的 TextView 声明为全局。
TextView FCompStock;
protected override void OnCreate(Bundle bundle)
{
//Not showing you lots of stuff, because its irrelevant
Spinner RiderSelectSpinner = FindViewById<Spinner>(Resource.Id.RiderSelectSpinner);
FCompStock = FindViewById<TextView>(Resource.Id.FCompStock);
RiderSelectSpinner.ItemSelected += rider_Selected;
}
public void rider_Selected(object sender, AdapterView.ItemSelectedEventArgs e) {
//Not showing you many database things because its not relevant
if (!string.IsNullOrEmpty(dataString))
{
string[] dataList = dataString.Split(',');
FCompStock.Text = "Whatever you want";
}
}
我知道这是一个非常基本的问题,但我似乎无法用我有限的 C#/Android 应用程序功能来克服它。
编辑:总而言之,我有一个在select编辑微调项时调用的方法。在那种方法中,我通过数据库调用获得了一堆文本。我希望能够在我的 OnCreate 中访问该文本列表,以便我可以使用它来填充文本视图(以及其他内容)
在我的代码中,我有一个用户 select 来自微调器的值。当他们 select 它时,我启动了一些代码,使用微调器 selection 来查询 SQL 数据库并拆分成一个名为 dataList 的字符串数组,如下所示:
protected override void OnCreate(Bundle bundle)
{
//Not showing you lots of stuff, because its irrelevant
Spinner RiderSelectSpinner = FindViewById<Spinner>(Resource.Id.RiderSelectSpinner);
TextView FCompStock = FindViewById<TextView>(Resource.Id.FCompStock);
RiderSelectSpinner.ItemSelected += rider_Selected;
}
public void rider_Selected(object sender, AdapterView.ItemSelectedEventArgs e) {
//Not showing you many database things because its not relevant
if (!string.IsNullOrEmpty(dataString))
{
string[] dataList = dataString.Split(',');
}
}
这是关键,也是我的问题。我想将我的 dataList 的某些值显示为在 OnCreate 中定义的文本视图。我的文本视图(当然)在我的 rider_Selected 方法中没有上下文。本质上,我想在上面定义 dataList 之后添加以下内容:
FCompStock.Text = dataList[0];
我试图通过在主 activity 中定义 dataList 来制定解决方案,从而使其可用于 onCreate 和我的方法,但我需要一个事件来触发填充文本视图。我还尝试简单地制定允许我将 dataList 传回调用它的地方的方法,但那里也没有骰子。
有人可以指导我如何将 dataList 传回原始调用,或者可能如何创建一个事件来填充文本视图吗?
您可以在 onCreate 方法之外将您的 TextView 声明为全局。
TextView FCompStock;
protected override void OnCreate(Bundle bundle)
{
//Not showing you lots of stuff, because its irrelevant
Spinner RiderSelectSpinner = FindViewById<Spinner>(Resource.Id.RiderSelectSpinner);
FCompStock = FindViewById<TextView>(Resource.Id.FCompStock);
RiderSelectSpinner.ItemSelected += rider_Selected;
}
public void rider_Selected(object sender, AdapterView.ItemSelectedEventArgs e) {
//Not showing you many database things because its not relevant
if (!string.IsNullOrEmpty(dataString))
{
string[] dataList = dataString.Split(',');
FCompStock.Text = "Whatever you want";
}
}