Android Chronometer 有 .start() 和 .stop() 但没有 .get/setBase()
Android Chronometer has .start() and .stop() but not .get/setBase()
为 VS15 社区安装了 xamarin
Class 正在使用 Android.Widget
Chronometer 在 Android.Widget.Chronometer
在第 6 行和第 11 行,我得到 "does not contain definition for method" 错误:
'Chronometer' 不包含 'setBase' 的定义并且没有扩展方法 'setBase' 可以找到接受类型 'Chronometer' 的第一个参数(您是否缺少使用指令或程序集引用?)
但是 Chronometer 确实有 .Start() 和 .Stop() 的定义。为什么没有 get/setBase?
然而
Android Documentation 注意方法应该是小写的:.start() 和 .stop()
我不确定从哪里开始寻找 reference/using 问题?
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();
}
};
Xamarin 通常将方法和 属性 名称转换为更标准的 C# 约定 - 混合大小写而不是小写,并使用 属性 名称而不是 get/set 方法。
所以 getBase 和 setBase 被翻译成一个单独的 Base 属性 加上 getter 和 setter.
参见:https://developer.xamarin.com/api/type/Android.Widget.Chronometer/
Chronometer 有一个 Base 属性。因此,您只需键入 chrono.Base
而不是 chrono.GetBase()
为 VS15 社区安装了 xamarin
Class 正在使用 Android.Widget
Chronometer 在 Android.Widget.Chronometer
在第 6 行和第 11 行,我得到 "does not contain definition for method" 错误:
'Chronometer' 不包含 'setBase' 的定义并且没有扩展方法 'setBase' 可以找到接受类型 'Chronometer' 的第一个参数(您是否缺少使用指令或程序集引用?)
但是 Chronometer 确实有 .Start() 和 .Stop() 的定义。为什么没有 get/setBase?
然而
Android Documentation 注意方法应该是小写的:.start() 和 .stop()
我不确定从哪里开始寻找 reference/using 问题?
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();
}
};
Xamarin 通常将方法和 属性 名称转换为更标准的 C# 约定 - 混合大小写而不是小写,并使用 属性 名称而不是 get/set 方法。
所以 getBase 和 setBase 被翻译成一个单独的 Base 属性 加上 getter 和 setter.
参见:https://developer.xamarin.com/api/type/Android.Widget.Chronometer/
Chronometer 有一个 Base 属性。因此,您只需键入 chrono.Base
chrono.GetBase()