如果我像这样编写事件处理程序:
CheckBox whatever = FindViewById<CheckBox> (Resource.Id.checkBox1);
whatever.Click += (s, e) =>
{
if (!whatever.Checked)
{
//do stuff
}
}
调用处理程序时抛出异常。如果我为具有不同名称的同一视图创建另一个CheckBox对象 - 如下所示:
CheckBox whatever = FindViewById<CheckBox> (Resource.Id.checkBox1);
whatever.Click += (s, e) =>
{
CheckBox whatever2 = FindViewById<CheckBox> (Resource.Id.CheckBox1);
if (!whatever2.Checked)
{
//do stuff
}
}
没有问题。为什么需要重复的对象?
答案 0 :(得分:2)
这是一个奇怪的问题,如果checkBox1&amp; CheckBox1不匹配是一个错字。无论如何,您最好使用CheckedChanged事件。所有下面的场景都运行得很好,所以代码中的其他内容可能不匹配。布局上的Id是checkBox1还是CheckBox1?
var checkBox = FindViewById<CheckBox>(Resource.Id.CheckBox1);
checkBox.CheckedChange += (sender, args) =>
{
if (!args.IsChecked)
{
}
};
checkBox.Click += (sender, args) =>
{
if (!checkBox.Checked)
{
}
if (!((CheckBox)sender).Checked)
{
}
};
答案 1 :(得分:0)
你用什么方法分配什么控件?
import os, sys
#open files in directory
path = "My Documents"
dirs = os.listdir( path )
# print the files in given directory
for file in dirs:
print (file)
我总是在OnResume事件中声明我的控件。