如何在标签中显示计时器的剩余时间?

时间:2018-06-16 15:52:34

标签: c# android xamarin time

我有一个计时器,可以在45秒内启用按钮

 Device.StartTimer(new TimeSpan(0, 0, 45), EnableButtonResend);


 private bool EnableButtonResend()
    {
        IsEnabledResend = true;
        return true;
    }

一切都很完美,我想在标签中显示按钮启用前的剩余时间。请稍等二十秒重新发送。有谁知道怎么做? 谢谢你的时间

2 个答案:

答案 0 :(得分:0)

您可以在变量中启用时间:

DateTime dt = DateTime.Now.AddSeconds(45);
Device.StartTimer(new TimeSpan(0, 0, 45), EnableButtonResend);
SownRemaining();

虽然该时间尚未达到,但请调用更改标签文字的方法:

void ShowRemaing()
{
    int a = (int)((dt - DateTime.Now).TotalSeconds);
    if(a > 0)
    {
    SomeLabel.Text = $"{a} Seconds to enable";
    Device.StartTimer(new TimeSpan(0, 0, 1), ShowRemaing);
    }
}

 private bool EnableButtonResend()
    {
        IsEnabledResend = true;
        return true;
    }

答案 1 :(得分:0)

这样的东西?

Device.StartTimer(new TimeSpan(0, 0, 1), EnableButtonResend);

int count = 0;

private bool EnableButtonResend()
{ 
    if(count < 45) {
        IsEnabledResend = true;
        count++;
        Button.SetText((45 - count) + " seconds remaining");
        return true;
    }
    // Do your stuff or reset state
    count = 0;
    return false;
}

如果您在true中返回EnableButtonResend,定时器将继续重复发生,因此请每隔一秒设置一次间隔,并在需要时进行回调以更改标签。