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()