java - Android:显示带有时间延迟的数组元素?

标签 java android arrays timer android-handler

在处理一个较大的项目时,我想显示带有时间延迟的字符串数组的所有元素(以便用户可读)。

在我的示例中,我有一个 StringBuilder 文本,它在选项卡上拆分并存储在 String[] 单词 中。

我最初的想法是使用类似的东西:

String[] words = text.toString().split("\t");
for (String word : words) {
    textView.setText(word);
    SystemClock.sleep(2000);
}

但是,这会阻塞 UI 线程,因此仅显示最后一个值。在阅读了更多内容后,我想出了这个解决方案(有效):

final String[] words = text.toString().split("\t");
final Handler handler = new Handler();

handler.post(new Runnable(){
    @Override
    public void run() {
        textView.setText(words[i]);
        i++;
        if(i < words.length) {
            handler.postDelayed(this, TIME_DELAY_MS);
        }
    }
});

但是,这要求我将 i 作为类的私有(private)变量(将其声明在与处理程序相同的范围内,强制它是最终的,但它不能是这样的)遍历数组)。

仅出于此目的而拥有类的私有(private)变量似乎非常不优雅 - 有没有我错过的更好的方法来做到这一点?

最佳答案

试试这个代码:

public class test extends Activity {

private TextView textView;
private int i = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test);
    textView = (TextView)findViewById(R.id.text);
    set();
}
private void set(){

    final String text ="A n d r o i d P r o g r a m m i n g";
    final String[] words = text.toString().split(" ");
    final Handler handler = new Handler();

    handler.post(new Runnable(){
        @Override
        public void run() {
            textView.setText(""+words[i]);
            i++;
            if(i < words.length) {
                handler.postDelayed(this, 1000);
            }
        }
    });
}}

关于java - Android:显示带有时间延迟的数组元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30869416/

相关文章:

java - Android 应用程序和 Web 浏览器之间的套接字通信

java - 从 @RequestHeader 读取 JSON 对象

java - 删除除与正则表达式 java 匹配的内容之外的所有文本

java - Hadoop:你能默默丢弃一个失败的 map task 吗?

android - 从 HAL 到应用框架层的 AOSP NFC 设备调用流程

android - 如何在gradle脚本中的defaultConfig中更改一些值?

android - 使用 InputStream 将 Intent 发送到媒体播放器应用程序

javascript - 有人可以解释这些 JS 函数之间的区别,一个有回调,另一个没有回调

javascript - 如何以最少的步骤验证数组是否存在及其长度?

php - 从 PHP 数组为下拉选择字段创建嵌套列表