为VS15社区安装了xamarin
Class正在使用Android.Widget
Chronometer在Android.Widget.Chronometer
中在第6行和第11行,我得到“不包含方法的定义”错误:
'Chronometer'不包含'setBase'的定义,也没有扩展方法'setBase'接受'Chronometer'类型的第一个参数(你是否缺少using指令或汇编引用?)
但Chronometer DOES定义了.Start()和.Stop()。为什么没有get / setBase?
无论其
Android Documentation注意到这些方法应该是小写的:.start()和.stop()
我不知道从哪里开始寻找参考/使用问题?
Chronometer chrono = FindViewById<Chronometer>(Resource.Id.chronometer1);
var chronoActionButton = FindViewById<Button>(Resource.Id.btnStopwatchController);
chronoActionButton.Text = (!isRunning) ? Resources.GetString(Resource.String.stopwatchconrollerButton_text, "Start") : Resources.GetString(Resource.String.stopwatchconrollerButton_text, "Stop");
chronoActionButton.Click += (object sender, System.EventArgs e) => {
if (!isRunning) {
chrono.setBase(SystemClock.ElapsedRealtime() + timeWhenStopped);
isRunning = true;
chronoActionButton.Text = Resources.GetString(Resource.String.stopwatchconrollerButton_text, "Stop");
chrono.Start();
} else {
timeWhenStopped = chrono.getBase() - SystemClock.ElapsedRealtime();
isRunning = false;
chronoActionButton.Text = Resources.GetString(Resource.String.stopwatchconrollerButton_text, "Start");
chrono.Stop();
}
};
答案 0 :(得分:1)
Xamarin通常将方法和属性名称转换为更标准的C#约定 - 混合大小写而不是低级大小,并使用属性名称而不是get / set方法。
因此getBase和setBase只被转换为带有getter和setter的单个Base属性。
请参阅:https://developer.xamarin.com/api/type/Android.Widget.Chronometer/
答案 1 :(得分:1)
Chronometer具有Base属性。因此,您只需键入chrono.GetBase()
chrono.Base