C# 在微调器项目选择后填充textview(C、Xamarin、Android)

C# 在微调器项目选择后填充textview(C、Xamarin、Android),c#,xamarin,spinner,C#,Xamarin,Spinner,我明白这是一个非常基本的问题,但我似乎无法用我有限的C/Android应用程序功能来克服它 编辑:总之,我有一个在选择微调器项时调用的方法。在这种方法中,我通过一个数据库调用获得一堆文本。我希望能够访问OnCreate中的文本列表,以便使用它填充文本视图和其他内容 在我的代码中,我让用户从微调器中选择一个值。当他们选择它时,我会启动一段代码,使用微调器选择查询SQL数据库,并将其拆分为一个名为dataList的字符串数组,如下所示: protected override void OnC

我明白这是一个非常基本的问题,但我似乎无法用我有限的C/Android应用程序功能来克服它

编辑:总之,我有一个在选择微调器项时调用的方法。在这种方法中,我通过一个数据库调用获得一堆文本。我希望能够访问OnCreate中的文本列表,以便使用它填充文本视图和其他内容

在我的代码中,我让用户从微调器中选择一个值。当他们选择它时,我会启动一段代码,使用微调器选择查询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和我的方法在这里可用,但我需要一个事件来触发填充textview。我还尝试简单地制定方法,允许我将dataList传递回调用它的位置,但也没有骰子


有人可以指导我如何将dataList传递回原始调用,或者如何创建事件来填充文本视图吗?

您可以在onCreate方法之外将您的文本视图声明为全局

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";
    }
}

您可以在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";
    }
}

嗨,我不确定这是不是你想要的。但您可以通过Id访问您的TextView或活动中的任何其他元素。例如:TextView t=FindViewByDresource.Id.textView1;然后更改值:t.Text=新值。这就是你要找的吗?对不起,我没解释清楚。我想给我的文本分配一些文本,但是文本是用另一种方法生成的。另一个方法是spinner.itemselected。不知何故,我需要让我的spinner.itemselected方法返回此文本。为什么您不能在该方法中访问textView并进行设置?这个方法在活动一之外的其他对象中吗?嗨,我不确定这是否是你想要的。但您可以通过Id访问您的TextView或活动中的任何其他元素。例如:TextView t=FindViewByDresource.Id.textView1;然后更改值:t.Text=新值。这就是你要找的吗?对不起,我没解释清楚。我想给我的文本分配一些文本,但是文本是用另一种方法生成的。另一个方法是spinner.itemselected。不知何故,我需要让我的spinner.itemselected方法返回此文本。为什么您不能在该方法中访问textView并进行设置?这个方法在活动1之外的其他对象中吗?非常感谢!你知道,我已经试过了,但是我使用了整个语句来分配资源ID,但没有成功。我没有想到要把这两者分开。您需要先设置内容视图,然后才能使用findViewById。非常感谢!你知道,我已经试过了,但是我使用了整个语句来分配资源ID,但没有成功。我没有想到要把这两者分开。您需要先设置内容视图,然后才能使用findViewById。