Xamarin.android 单选按钮单击事件isn';第一次点击xamarin android时就开火了

Xamarin.android 单选按钮单击事件isn';第一次点击xamarin android时就开火了,xamarin.android,radio-button,spinner,Xamarin.android,Radio Button,Spinner,我有两个单选按钮在一个广播组内。我想在单击每个单选按钮时,用sql server中的数据库中的不同值填充可搜索微调器。我编写了以下代码: public class Invoice_hist_frg : Fragment { List<invoice_details> tableItem_invoice = new List<invoice_details>(); RadioButton rdbtn_per_acc, rdbtn_p

我有两个单选按钮在一个广播组内。我想在单击每个单选按钮时,用sql server中的数据库中的不同值填充可搜索微调器。我编写了以下代码:

 public class Invoice_hist_frg : Fragment
    {
        List<invoice_details> tableItem_invoice = new List<invoice_details>();
        RadioButton rdbtn_per_acc, rdbtn_per_item;
        SearchableSpinner searchableSpinner;
        private List<KeyValuePair<string, string>> spinner_per_acc=new List<KeyValuePair<string, string>>();
        private List<KeyValuePair<string, string>> spinner_per_item= new List<KeyValuePair<string, string>>();
        public override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Create your fragment here
        }

        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            // Use this to return your custom view for this Fragment
            View view = inflater.Inflate(Resource.Layout.invoice_history, container, false);
            WSitems.WebService1 ws = new WSitems.WebService1();
            ws.Invoice_historyAsync();
            ws.Invoice_historyCompleted += Ws_Invoice_historyCompleted;
            rdbtn_per_acc = view.FindViewById<RadioButton>(Resource.Id.radioButton1);
            rdbtn_per_item= view.FindViewById<RadioButton>(Resource.Id.radioButton2);
            
            searchableSpinner =view.FindViewById<SearchableSpinner>(Resource.Id.searchablespinner);
            rdbtn_per_acc.Click += Rdbtn_per_acc_Click;
            rdbtn_per_item.Click += Rdbtn_per_item_Click;
            return view;

        }

       


        private void Ws_Invoice_historyCompleted(object sender, WSitems.Invoice_historyCompletedEventArgs e)
        {

            string[] InvNbr;
            string[] InvDate;
            string[] Account;
            string[] accName;
            string[] Cur;
            string[] InvType;
            string[] item;
            string[] itemname;
            string[] Unit;
            string[] Quantity;
            string[] Price;
            string[] Vat;
            string[] Total;
            try
            {
                InvNbr = e.Result.InvNbr;
                InvDate = e.Result.InvDate;
                Account = e.Result.Account;
                accName = e.Result.accName;
                Cur = e.Result.Cur;
                InvType = e.Result.InvType;
                item = e.Result.item;
                itemname = e.Result.itemname;
                Unit = e.Result.Unit;
                Quantity = e.Result.Quantity;
                Price = e.Result.Price;
                Vat = e.Result.Vat;
                Total = e.Result.Total;
                //spinner_per_acc = new List<KeyValuePair<string, string>>();
                //spinner_per_item = new List<KeyValuePair<string, string>>();
                //tableItems.Add(new itemproperties() { itembarcode = "Code", name = "Description", itemsunitcode = "unit", currentQuantity = "Quantity", CostPrice="CostPrice", moreInfo = "Info" });
                for (int i = 0; i < Account.Length; i++)
                {
                    tableItem_invoice.Add(new invoice_details() { InvNbr = InvNbr[i], InvDate = InvDate[i], Account = Account[i], accName = accName[i],
                        Cur = Cur[i],
                        InvType = InvType[i],
                        item = item[i],
                        itemname = itemname[i],
                        Unit = Unit[i],
                        Quantity = Quantity[i],
                        Price = Price[i],
                        Vat = Vat[i],
                        Total = Total[i],
                    });
                    spinner_per_acc.Add(new KeyValuePair<string, string >(accName[i] + '-' + Cur[i], Account[i] + '-' + Cur[i]));
                    spinner_per_item.Add(new KeyValuePair<string, string>(itemname[i] + '-' + Cur[i], item[i] + '-' + Cur[i]));
                   
                }


               
            


            }
            catch (System.Reflection.TargetInvocationException exp)
            {

            }

        }

      

        private void Rdbtn_per_item_Click(object sender, EventArgs e)
        {
            
            List<string> spinner_item = new List<string>();
            foreach (var item in spinner_per_item)
                spinner_item.Add(item.Key);
            //spinner_item.Add("ljhg");
            //spinner_item.Add("ljhg");
            //spinner_item.Add("ljhg");
            searchableSpinner.Adapter = new ArrayAdapter<String>(this.Context, Resource.Layout.support_simple_spinner_dropdown_item, spinner_item);
            
        }

        private void Rdbtn_per_acc_Click(object sender, EventArgs e)
        {
            List<string> spinner_acc = new List<string>();
            foreach (var item in spinner_per_acc)
                spinner_acc.Add(item.Key);
            //spinner_acc.Add("ytrew");
            //spinner_acc.Add("ytrew");
            //spinner_acc.Add("ytrew");

            searchableSpinner.Adapter=new ArrayAdapter<String>(this.Context, Resource.Layout.support_simple_spinner_dropdown_item, spinner_acc);
        }
    }
}
public class Invoice\u hist\u frg:Fragment
{
List tableItem_发票=新列表();
无线按钮rdbtn_/附件,rdbtn_/项目;
可搜索微调器可搜索微调器;
私有列表微调器_per_acc=new List();
私有列表微调器每项=新列表();
创建时公共覆盖无效(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
//在这里创建你的片段
}
创建视图上的公共覆盖视图(布局、充气机、视图组容器、捆绑包保存状态)
{
//使用此选项可返回此片段的自定义视图
视图=充气机。充气(Resource.Layout.invoice\u历史记录,容器,false);
WSitems.WebService1 ws=新的WSitems.WebService1();
ws.Invoice_historyAsync();
ws.Invoice_history completed+=ws_Invoice_history completed;
rdbtn_per_acc=view.findviewbyd(Resource.Id.radioButton1);
rdbtn_per_item=view.findviewbyd(Resource.Id.radioButton2);
searchableSpinner=view.FindViewById(Resource.Id.searchableSpinner);
rdbtn_每_acc.Click+=rdbtn_每_acc_Click;
rdbtn每项点击+=rdbtn每项点击;
返回视图;
}
私有void Ws_Invoice_historyCompleted(对象发送方,WSitems.Invoice_historyCompletedEventArgs e)
{
字符串[]InvNbr;
字符串[]输入日期;
字符串[]帐户;
字符串[]accName;
字符串[]Cur;
字符串类型;
字符串[]项;
字符串[]itemname;
字符串[]单位;
字符串[]数量;
字符串[]价格;
字符串[]Vat;
字符串[]总计;
尝试
{
InvNbr=e.Result.InvNbr;
InvDate=e.Result.InvDate;
Account=e.Result.Account;
accName=e.Result.accName;
Cur=e.Result.Cur;
InvType=e.Result.InvType;
项目=e.Result.item;
itemname=e.Result.itemname;
单位=e.Result.Unit;
数量=e.Result.Quantity;
价格=结果价格;
增值税=e.Result.Vat;
总计=e.Result.Total;
//微调器_per_acc=新列表();
//微调器每项=新列表();
//tableItems.Add(新的itemproperties(){itembarcode=“Code”,name=“Description”,itemsUnit=“unit”,currentQuantity=“Quantity”,CostPrice=“CostPrice”,moreInfo=“Info”});
for(int i=0;i
我的问题是,我首先选择的单选按钮没有向微调器填充任何内容。但是,当我点击第二个并返回第一个时,微调器就会充满所需的数据。我试着用我添加的数据填充它,而不是从数据库填充,它工作得很好,但是为什么它不能用数据库提供的数据工作呢?
提前感谢

单击“阅读”按钮时,请确保已从数据库中获取数据。