Spin ner Adapter-Xamarin Android

问题描述 投票:0回答:1

我的adapterspinner出现问题,它从SQLite数据库]中获取数据,并试图显示出一串字符串作为旋转器的结果。

它向我发送以下错误消息:

“引发了类型为'Java.Lang.NullPointerException'的异常。” 当我在运行应用程序的情况下单击微调器时,如果不在try / catch中,则应用程序将冻结。

有人可以帮我找出问题所在吗?下面的代码:

活动代码

private string[] _companyNames;

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.a_plant);

            Spinner spCompanyName = FindViewById<Spinner>(Resource.Id.spCompanyName);
            EditText etPlantName = FindViewById<EditText>(Resource.Id.etPlantName);

            Button btnAdd = FindViewById<Button>(Resource.Id.btnAdd);
            Button btnSearch = FindViewById<Button>(Resource.Id.btnSearch);

            //Adds data to the spinner only if they dont exist already
            DBManager.LoadCompanySpinner(_companyNames);

            //shows data on spinner
            try
            {
                //THIS IS WHERE THE EXCEPTION IS CAUGHT
                ArrayAdapter<string> adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleSpinnerDropDownItem, _companyNames);
                //
                adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
                spCompanyName.Adapter = adapter;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

[DBManager代码以在spinner上添加数据

我相信此代码有效,因为它将结果打印在控制台上。

//insert data in spinner
        public static void LoadCompanySpinner(string[] l)
        {
            var t = DBManager.Instance.Query<Company>("Select CompanyName from company");
            int size = t.Count;
            if(size > 0)
            {
                l = new string[size + 1];
                l[0] = "Select Company...";
                for (var i = 0; i < size; i++)
                {
                    l[i + 1] = t[i].CompanyName;
                    Console.WriteLine("added " + t[i].CompanyName);
                }
            }
        }

    

我的微调器适配器有问题,该适配器从SQLite数据库中获取数据,并尝试显示一串字符串作为微调器的结果。它向我发送以下错误消息:“ ...

c# android xamarin spinner adapter
1个回答
0
投票

我终于解决了!

© www.soinside.com 2019 - 2024. All rights reserved.