Xamarin.android 单选按钮单击事件isn';第一次点击xamarin android时就开火了
我有两个单选按钮在一个广播组内。我想在单击每个单选按钮时,用sql server中的数据库中的不同值填充可搜索微调器。我编写了以下代码: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
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
我的问题是,我首先选择的单选按钮没有向微调器填充任何内容。但是,当我点击第二个并返回第一个时,微调器就会充满所需的数据。我试着用我添加的数据填充它,而不是从数据库填充,它工作得很好,但是为什么它不能用数据库提供的数据工作呢?
提前感谢单击“阅读”按钮时,请确保已从数据库中获取数据。