android - 计时器 - 如何使用计时器以特定间隔显示文本?
问题描述
我有 30 秒内带有时间戳的 JSON 数据(我想在 TextViews 中显示大约 20 个字符串)。我将如何显示相对于 30 秒计时器的文本?
json 输出是开始时间和结束时间。例如:
start_time : 2.7
end_time : 3.28
content : just call me //The text I want to display on screen
start_time : 3.76
end_time : 3.96
content : maybe
解决方案
您可以使用 java.util.Timer 来实现计时器。
new Timer().schedule(task, after);
像这样在 for 循环中使用它:
for(int i=0; i<=array.length(); i++){
new Timer().schedule(task, start_time);
}
此外,您可以通过以下方式设置从 TextView 中删除文本的计时器:
for(int i=0; i<=array.length(); i++){
new Timer().schedule(task, start_time);
new Timer().schedule(taskDelete, end_time);
}
你可以像这样定义任务:
task = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
//set text in TextView
yourTV.setText("your text);
}
});
}
};
而且, taskDelete 像这样:
taskDelete = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
//remove text from TextView
yourTV.setText("...");
}
});
}
};
如果要使用动画更改 textView 中的文本,可以使用TextSwitcher
推荐阅读
- nlp - Dialogflow 中的组参数
- c# - 在 ASP.net 中使用 Office 365 作为中继时如何将发件人(代表用户)添加到电子邮件
- ios - Swift:使用 Dictionary 将 JSON 数据从 alamofire 解析为数组时出错
- eucalyptus - Eucalyptus 4.4.4 Eucaconsole 登录后崩溃
- powershell - Powershell自行更改数组内容
- c# - 如何通过 USB 使用 C# 连接多个红外摄像机
- linkedin - LinkedIn post 检查器在 https URL 上遇到服务器错误
- php - 使用phpspreadsheet循环返回行
- sql - SQL- convert varchar yyyymmdd-ttttt to iso 8601 format
- maven - JBoss EAP 7 配置 - 如何使用 CLI 在 JBoss EAP 7 中创建域控制器