Android - 获取计时器小部件的时间

2023-11-23

如何从天文台表获取时间?我尝试了 getText、getFormat、getBase 等,但它们都不起作用。

示例代码片段:

Chronometer t = (Chronometer)findViewById(R.id.toptime);
long time = SystemClock.elapsedRealtime()-t.getBase();
Log.d(null,"Was: "+time); //time is not the proper time for some reason - it is a random number between 0 and 50
t.setBase(SystemClock.elapsedRealtime());
t.start();

如果您查看 Chronometer 类的源代码,您会发现它不会将经过的时间存储在字段中,而是在每次需要更新显示时在内部计算它。

然而,在您自己的代码中执行相同的操作相对容易:

long elapsedMillis = SystemClock.elapsedRealtime() - chronometerInstance.getBase();

这假设您已经启动了时钟,如下所示:

chronometerInstance.setBase(SystemClock.elapsedRealtime());
chronometerInstance.start();

这是一个完整的示例:

public class ChronoExample extends Activity {
Chronometer mChronometer;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LinearLayout layout = new LinearLayout(this);
    layout.setOrientation(LinearLayout.VERTICAL);

    mChronometer = new Chronometer(this);
    layout.addView(mChronometer);

    Button startButton = new Button(this);
    startButton.setText("Start");
    startButton.setOnClickListener(mStartListener);
    layout.addView(startButton);

    Button stopButton = new Button(this);
    stopButton.setText("Stop");
    stopButton.setOnClickListener(mStopListener);
    layout.addView(stopButton);

    Button resetButton = new Button(this);
    resetButton.setText("Reset");
    resetButton.setOnClickListener(mResetListener);
    layout.addView(resetButton);        

    setContentView(layout);
}

private void showElapsedTime() {
    long elapsedMillis = SystemClock.elapsedRealtime() - mChronometer.getBase();            
    Toast.makeText(ChronoExample.this, "Elapsed milliseconds: " + elapsedMillis, 
            Toast.LENGTH_SHORT).show();
}

View.OnClickListener mStartListener = new OnClickListener() {
    public void onClick(View v) {
        mChronometer.start();
        showElapsedTime();
    }
};

View.OnClickListener mStopListener = new OnClickListener() {
    public void onClick(View v) {
        mChronometer.stop();
        showElapsedTime();
    }
};

View.OnClickListener mResetListener = new OnClickListener() {
    public void onClick(View v) {
        mChronometer.setBase(SystemClock.elapsedRealtime());
        showElapsedTime();
    }
};
}

关于 Chronometer 的一个有点令人困惑的事情是,你不能真正将它用作启动、停止和重新启动的秒表。当它运行时,它总是会显示自您上次重置以来经过的时间,无论您在此期间停止了多少次、持续了多长时间。当它停止时,它只是停止更新显示。

如果您需要像秒表这样的东西,您必须将 Chronometer 子类化,或者使用以下命令创建您自己的版本source.

alt text

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android - 获取计时器小部件的时间 的相关文章

  • Android 中的处理程序与异步调用

    目前我正在使用处理程序来调用 Web 服务方法以使其在后台运行 问题是它需要更多的时间来给出响应 在性能方面似乎更昂贵 现在我计划使用异步调用 哪一个是最好的 Android 中的处理程序和异步调用有什么区别 请帮我想出一个最好的解决方案
  • 上网本上可以进行Android开发吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想使用我的上网本进行 Android 开发 但是当我尝试使用 Eclipse 运行 SDK 时 没有加载任何内容 上网本对于 Android 开发来
  • 如何检查 Android 中的同步设置

    我正在构建一个 Android 应用程序 我需要检查设备中注册的每个单独帐户的同步设置 我知道我可以通过 ContentResolver 类来做到这一点 但我遇到了一些问题 我已设法获取设备上所有帐户的列表 但我不知道在运行时从哪里获取特定
  • 通过系统应用程序以编程方式静默安装 apk(无需 root)

    我有带有 android sharedUserId android uid system UID 1000 的系统级应用程序 设备未root INSTALL PACKAGES 权限包含在清单中 我可以静默安装下载的 apk 吗 我已经发现这
  • 插件“Android Bundle Support”不兼容

    大家好 自从上次更新以来 当我启动 android studio 时 我遇到了一个非常奇怪的错误 我有这个错误 插件错误 插件 Android Bundle Support 不兼容 直到构建 AI 195 SNAPSHOT 我在网上找不到任
  • 没有支持 FEATURE_CAMERA_EXTERNAL 的 Android 设备

    根据this doc https source android com devices camera external usb cameras一些 Android 设备允许使用 Camera2 API 访问外部 USB 摄像头 我检查了大约
  • Android 后台倒计时器

    我有一个 Android 应用程序 它管理一个倒计时器 类 CountDownTimer 它显示在应用程序屏幕中 以显示到达 00 00 还剩多少时间 我现在的问题是 当我按主页按钮或启动另一个应用程序时 应用程序 计时器不会在后台运行 所
  • Android 屏幕方向错误

    我使用的是 Android HTC HERO 2 1 版本 我写的活动
  • 有没有任何代码可以在android中设置壁纸而无需裁剪和缩放?

    我正在创建一个画廊应用程序 我的第一个应用程序 这是我的代码 Bitmap bmd BitmapFactory decodeStream is try getApplicationContext setWallpaper bmd catch
  • 如何在 Android 上以编程方式取消配对或删除配对的蓝牙设备?

    该项目是使用我的 Android 手机连接我的 arduino 设备 但我怎样才能取消配对 我看到配对列表似乎存储在蓝牙适配器可以随时检索的位置 附 第一 我知道长按已配对的设备会取消配对 但这里的问题是我怎样才能以编程方式实现这一点 2
  • 在 Android 中动态填充年份的微调器?

    我一直在绞尽脑汁试图让它发挥作用 我想动态地将 1900 年到当前年份的年份输入到旋转器中 我认为使用 XML 定义的数组不可能做到这一点 但是我可以使用数组适配器来做到这一点吗 这是我到目前为止所拥有的 ArrayList
  • 发生存储异常。无法在firebase中上传图片

    在我能够更改图像并将其上传到 firebase 之前 这段代码就可以工作 但现在我突然收到此错误 我不知道问题是什么 public class SettingsActivity extends AppCompatActivity priva
  • Sqlite 查询检查 - 小于和大于

    return mDb query DATABASE TABLE new String KEY ROWID KEY LEVEL KEY LEVEL gt 3 lt 5 null null null null 我究竟做错了什么 它返回的值全部高
  • 在屏幕上随机生成一个圆圈并将其设为绿色或红色

    所以我一直在尝试制作一个游戏应用程序 它可以在 Android 屏幕上随机显示带有文本的红色按钮或带有文本的绿色按钮 如果有人可以帮助我 我将不胜感激 另外 如果有人知道如何做到这一点 我想慢慢地产生更快的酷优势 谢谢 SuppressLi
  • Android,让文本切换器成为中心?

    如何集中我的文本切换器 我尝试过设置重力 但似乎不起作用 ts setFactory new ViewFactory public View makeView TextView t new TextView this t setTypefa
  • Android 上通过 JSCH 的基本 SSH 连接

    作为来自此的用户question https stackoverflow com questions 14323661 simple ssh connect with jsch和这个tutorial http eridem net andr
  • 不使用 CookieManager 的 Android 会话 cookie

    我的应用程序进行多次网络调用以获得身份验证 我需要将此会话存储在 cookie 中 我想使用 Cookie Manager 但经过一些研究后 我发现它仅适用于 API 9 及更高版本 并且我的应用程序需要向后兼容 我使用 HTTPURLCo
  • 将寻呼机视为列表视图行项目

    我有一个包含 20 行的列表视图 我想为列表视图中的每一行设置一个视图寻呼机 由于列表视图的行中的项目可能是一个或多个 并且我想使用视图分页器显示列表视图行项目 为此 我使用以下代码 将显示在列表视图行中的自定义布局 作为分页器项目
  • 使用 POST 将数据从 Android 发送到 AppEngine Datastore

    抱歉 如果这是一个简单的问题 但我只是不知道我应该做什么 而且我认为我有点超出了我的深度 我想将数据从 Android 应用程序发送到在 Google App Engine 上运行的应用程序 数据必须从那里写入数据存储区 我的数据主要采用对
  • Android接收通知打开和取消事件

    我从 webService 接收数据以生成自定义通知 我想追踪Intent要知道open 点击 或cancel 滑动 通知上的事件 以报告服务器进行分析 有没有听众onIntentStart or onIntentCanceled 也许是通

随机推荐

  • 如何根据对象的属性对 json 或 jsonb 值内的数组中的对象进行排序?

    我有这个 pl pgsql 函数来聚合两个表中的行jsonb value data table 1 and data table 2 fk id是两个表中的公共外键 id DECLARE v my variable 1 jsonb v my
  • 127 及以上范围的正则表达式模式

    我需要一个正则表达式 使其匹配以下加上任何高于 127 的 ascii 即 7F 十六进制及以上 对于给定范围 以下效果很好 string pattern x00 x1F 尝试使用 or 运算符 管道 string pattern x00
  • 使用 javascript/jquery 生成页码?

    如何使用 javascript jquery 生成如下页码 如果选择第 5 页 我必须显示 3 4 和 6 7 以及 1 最后一页以及上一页 下一页 任何建议 EDIT 如何处理使用这些分页 div 的 json 数据 即 我的json数据
  • 如何使用 WebSocket 从 PHP 发送数据/文本进行处理?

    我在服务器上有一个进程充当 WebSocket 服务器 不是用 Ratchet 编写的 我希望能够使用 PHP 作为客户端 将数据发送到该进程 我发现了很多像这样作为 TCP 发送的示例
  • Outlook .MSG 和 .OFT 文件格式之间有区别吗?

    这个问题有点遥远 但我花了几个小时却无济于事 我有一些代码可以在网络服务器上生成电子邮件文件 并允许用户下载该电子邮件并在 Outlook 中打开它 从这里 他们可以在将电子邮件发送给一群人之前对电子邮件进行各种手动更改 现在 我生成一个
  • 当将对象作为参数传递时,它们是通过引用传递的吗?

    如果我执行以下任一操作 是否会对性能产生影响 def do something user article end versus def do something user id article id end 我更喜欢传递对象 因为我可能需要
  • D3.js 的最大数据文件大小

    D3js 数据文件大小的限制因素是什么 文件从服务器加载到客户端需要多长时间 我正在尝试创建芝加哥的路线图 您可以将鼠标悬停在道路上以获取其名称并突出显示它 来自城市的文件大小为 125 MB 我通过删除不必要的信息将其缩减至 30 MB
  • 升级到 EF 6 (RTM) - 获取 System.Data.Entity.Core.Objects.ObjectContext 不能用于返回类型 System.Data.Objects

    刚刚升级了 NET 4 5 WCF 服务 该服务还有一个使用 EF 6 的 OData 服务 OData 服务当然在升级之前可以正常工作 现在 当尝试查询 OData 服务或什至只是从 Visual Studio 2012 浏览到它时 我得
  • 如何从 Android 联系人列表中获取 Skype 信息?

    使用联系人合同内容提供程序的新手 我正在尝试从我的应用程序中进行 Skype 通话 但我不知道如何从 Android 联系人中获取 Skype 信息 我正在通过 ContentResolver 运行查询以获取联系人的所有数据 但我不知道如何
  • 为什么 printf 和 sprintf 在仅给定数组时表现不同?

    sub do printf printf sub do sprintf print sprintf do printf s n ok prints ok do sprintf s n ok prints 2 sprintf有原型 while
  • 使用 jQuery 获取元素类型

    是否可以使用 jQuery 找出元素的类型 例如 元素是 div span select 还是 input 例如 如果我尝试使用 jQuery 将值加载到下拉列表中 但相同的脚本可以将代码生成到一组单选按钮中 我可以创建类似以下内容的内容
  • 如何解决运算符“!=”不能应用于“T”和“T”类型的操作数[重复]

    这个问题在这里已经有答案了 此代码片段按预期工作int type public class Test public int Value get gt Value set if Value value Value value private
  • iOS:如何实现手写识别?

    开始iOS开发 我希望在我的应用程序中实现手写识别 我进行了谷歌搜索 但没有找到任何在 Objective C 中实现文本手势的教程 有没有可用的基本教程来实现文本手势 例如 当用户写入时A在屏幕上 屏幕应该显示A 这个项目有可用的演示教程
  • VBA数组排序功能?

    我正在寻找 VBA 中数组的合适排序实现 快速排序将是首选 或任何其他排序算法除了泡沫或合并就足够了 请注意 这是为了与 MS Project 2003 一起使用 因此应避免任何 Excel 本机函数和任何 net 相关的内容 Take a
  • 对 NSMutableDictionary 进行排序

    我有一个NSMutableDictionary那个映射NSString to NSString 尽管这些值是NSStrings 它们实际上只是整数 例如考虑以下映射 dog gt 4 cat gt 3 turtle gt 6 我希望最终得到
  • Android WebView SSL“安全警告”

    我正在为客户构建应用程序的测试版本 此应用程序的一部分使用调用基于 SSL 的站点的 WebView 反过来 客户端提供了一个测试域 其中证书名称与 FQDN 不匹配 唉 他们无法提供匹配的证书 我正在使用一行代码在配套的 iOS 特别应用
  • 远程访问 Team Foundation Server 2010

    我们是四个位于不同地点 彼此半径 100 公里 的开发人员 尝试在软件开发项目上进行合作 我们希望在一台计算机上安装 Team Foundation Server 2010 我们都使用 Windows 7 并将其用作我们的中央源代码存储库和
  • Jquery 正则表达式验证

    我想检查输入字段是否具有 模式 属性 如果是 则针对所述模式执行正则表达式检查 我知道 HTML5 已经完成了这一操作 但我想自己处理该事件 我收到此错误 未捕获的类型错误 对象 a zA Z 没有方法 测试 Check Perform R
  • 在主视图控制器的自定义单元格内使用 UIButton 中的 IBAction

    我创建了一个带有自己的 m h 和 xib 文件的自定义单元 在单元格中 我有一个 UIButton 已添加到 IB 中的 xib 中 我可以从这个自定义单元格的 m 中的 UIButton 接收 IBAction 但实际上 我想将该按钮按
  • Android - 获取计时器小部件的时间

    如何从天文台表获取时间 我尝试了 getText getFormat getBase 等 但它们都不起作用 示例代码片段 Chronometer t Chronometer findViewById R id toptime long ti