我有一個微調器,有幾個值,我從我的web服務填充它。Mono for Android:Spinner ItemSelected事件觸發負載,但不應該?
灌裝微調
int i = 0;
var dropItems = new List<SpinItem2>();
DataRow[] result = myOPTvalues.Tables[0].Select("FieldValue=" + item.FieldValue);
foreach (DataRow row in result)
{
var optItem = new PrevzemSpin();
optItem.FieldValue = row["FieldValue"].ToString();
if (optItem.FieldValue.Equals(""))
optItem.FieldValue = null;
optItem.FieldTextValue = row["FieldTextValue"].ToString();
if (optItem.FieldTextValue.Equals(""))
optItem.FieldTextValue = null;
dropItems.Add(new SpinItem2(i, optItem.FieldValue.ToString(), optItem.FieldTextValue.ToString()));
}
i = 1;
foreach (DataRow row in myOPTvalues.Tables[0].Rows)
{
var optItem = new PrevzemSpin();
optItem.FieldValue = row["FieldValue"].ToString();
if (optItem.FieldValue.Equals(""))
optItem.FieldValue = null;
optItem.FieldTextValue = row["FieldTextValue"].ToString();
if (optItem.FieldTextValue.Equals(""))
optItem.FieldTextValue = null;
if (optItem.FieldValue != item.FieldValue)
{
dropItems.Add(new SpinItem2(i, optItem.FieldValue.ToString(), optItem.FieldTextValue.ToString()));
}
++i;
}
出於某種原因,它的作用就像是被插入第一是在默認的「選擇」的項目,然後觸發,我用它來發送所選不過我還是要說的ItemSelected事件我不想那樣。
由於我的屏幕上有相當數量的這些旋鈕,它確實減慢了活動速度,並且它還將不正確的值發送到字段,並且由於我使用ItemSelect來檢測一切是否正常(假設服務下降或在用戶完成表單等時服務器上的值本身發生了變化(有人在服務器應用程序中添加了一個新字段)等等)
有沒有辦法告訴應用程序不要在活動負載上觸發該功能,而是在實際的用戶交互中觸發該功能?
在Android中,默認情況下,spinner的第一項被選中,並在加載時執行onItemSelected(...)中的代碼。所以,保羅的答案應該做的工作。我自己在我的一個項目及其工作中實現了這一點。 – Braj 2013-02-11 08:41:07