我想实现一个时间计数器(从0开始计数),基本上得到保存时间变量(开始时间,这是因为一旦用户点击一个按钮,创建)和减去当前时间(Calendar.getInstance()可能?这样结果就是两次之间的差异(HH:MM:SS).这个方法将在计时器的每个刻度上运行,以便文本视图每秒更新一次,有效地创建我的计时器.
现在,我采用这条迂回路线,因为这是我能够找到的唯一方法,即使应用程序被杀,也可以节省时间.这是因为startTime变量在创建后立即保存到SharedPreferences,并且在每个Tick中,系统只需找到startTime和当前时间之间的差异即可在现场计算我的计时器.
现在,我已经尝试将我的startTime作为Calendar变量并初始化为:
Calendar startTime = Calendar.getInstance();
Run Code Online (Sandbox Code Playgroud)
然后
elapsedTime = startTime - Calendar.getInstance();
Run Code Online (Sandbox Code Playgroud)
但显然,这不起作用.
在一个用C#编写的类似项目中,我能够使用它,虽然使用了DateTime变量......在Android中有这样的方法吗?
如果这太复杂了,是否有更好的方法来保存我的天文台计步器进度?
谢谢,麻烦您了!
我有一个我正在开发的Windows Phone应用程序,我的共享按钮打开一个带有几个选项的小弹出窗口,使用以下代码:
private void share_Click(object sender, System.EventArgs e)
{
Popup share= new Popup();
share.Child = new sharePopup();
share.IsOpen = true;
share.VerticalOffset = 30;
share.HorizontalOffset = 0;
}
Run Code Online (Sandbox Code Playgroud)
现在,这个弹出窗口有一个"关闭"按钮,但是如果我不点击它,而是点击前一个仍然可见的页面上的另一个按钮,即使在移动到新页面之后,弹出窗口也会保持原位.我必须点击"关闭"弹出窗口才能消失.
如果我点击弹出窗口之外的任何地方,我正在寻找的方法是关闭弹出窗口.是否有预定义的方法来执行此操作?如果没有,我可以采取哪些方式?
提前致谢
编辑:这是弹出窗口的c#代码
public partial class sharePopup : UserControl
{
public sharePopup()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Popup mensaje = this.Parent as Popup;
mensaje.IsOpen = false;
}
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
this.Focus();
}
private void UserControl_LostFocus(object sender, RoutedEventArgs e)
{
Popup mensaje = this.Parent …Run Code Online (Sandbox Code Playgroud)