java - 在 TextView -Android 中逐个字母显示字符串

标签 java android string for-loop android-animation

我有这个代码:

public void setText(String s){
    TextView tv= (TextView)HomeActivity.tf.getView().findViewById(R.id.textViewFragment);


    char c;
    for(int i=0; i< s.length(); i++){
        c= s.charAt(i);

        tv.append(String.valueOf(c));

        try{
            Thread.sleep(100);
        }catch(Exception e){}
    }
}

问题是我无法让 TextView 逐一显示字母。循环完成并执行所有内容后,即显示文本。

我想让它一个字母一个字母地显示出来,给 TextView 一个动画效果。

最佳答案

这段代码有效,

    public void setText(final String s)
    {
    TextView tv= (TextView)HomeActivity.tf.getView().findViewById(R.id.textViewFragment);
    final int[] i = new int[1];
    i[0] = 0;
    final int length = s.length();
    final Handler handler = new Handler()
    {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            char c= s.charAt(i[0]);
            Log.d("Strange",""+c);
            tv.append(String.valueOf(c));
            i[0]++;
        }
    };

    final Timer timer = new Timer();
    TimerTask taskEverySplitSecond = new TimerTask() {
        @Override
        public void run() {
            handler.sendEmptyMessage(0);
            if (i[0] == length - 1) {
                timer.cancel();
            }
        }
    };
    timer.schedule(taskEverySplitSecond, 1, 500);
}

关于java - 在 TextView -Android 中逐个字母显示字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34569675/

相关文章:

Java Enum.name() 意外结果包含 "?"

Android Studio Junit 测试包 org.junit 不存在

java - 覆盖自身的字符串数组列表

c# - 分开不同的字谜

string - Haskell 字符串中的换行符?

java - mockito 验证与 ArgumentCaptor 的交互

java - 为什么我的 UDP 连接停止工作?

android - 如何更改 BottomSheetDialog 中的透明背景?

Android 推送通知在中国

java - @PostConstruct 中没有可用的事务实体管理器