2 annbnncnnd AnnBnnCnnD 于 2012.12.29 10:51 提问

android中循环更新textView

我需要创建一个循环,用来更新textView,想法是创建某种进度指示器,增量加载百分比。
我实现之后,只能看见最后一次更新,已经显示100%了,不能看见增量过程:

 runOnUiThread(new Runnable() {
                         public void run() {
                            final TextView progesss = (TextView)findViewById(R.id.progress);
                            for(int k=1 ; k<=100; k++)
                            {
                                progesss.setText(String.valueOf(k) + "%");

                                try {
                                    Thread.sleep(15);
                                    } catch(InterruptedException e) {
                                    } 
                            }
                         }
                     });

不知道应该怎么实现我想要的效果。请大家帮忙。谢谢

2个回答

Kakalapa1986
Kakalapa1986   2012.12.29 11:38
已采纳

你的Runnable代码在Thread.sleep阻塞了UI线程。不要用sleeping, 重新编一下Runnable again。用下面的代码:

final Handler handler = new Handler();
handler.post( new Runnable(){ 
    private int k = 0;

    public void run() {
        final TextView progess = (TextView)findViewById(R.id.progress);
        progess.setText(String.valueOf(k) + "%");

        k++;
        if( k <= 100 )
        {
            // Here `this` refers to the anonymous `Runnable`
            handler.postDelayed(this, 15);
        }
    }
});

这样UI线程在每次调用时都能运行。

oSanYeCao1234567
oSanYeCao1234567   Ds   Rxr 2016.07.27 20:43
  1. 使用Handler发送延时消息
  2. 使用倒计时CountDownTimer,每隔一段时间执行某项操作
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android handler的三个小例子(最简单的,进度条,随机变换TextView字体颜色)
Android handler的三个小例子(最简单的,进度条,随机变换TextView字体颜色)
在非Activity(非主线程)中更新UI的办法:(二)Handler+接口回调
1、首先要创建一个接口,如下: package com.example.testprogressbar; public interface UIUpdate { public void updataMainActivity(int... args); } 2、在Activity中要做两件事情,第一依然是通过Handler更新UI,第二需要自定义一个类实现UIUpdate接口
android中利用handler改变textView的内容
先写一个TextView 和Button TextView android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView" /> Button android:id=
自动循环滚动textview
先初始化,在调用 starScroll()即可 代码: public class AutoScrollTextView extends TextView{ /** 文字长度 */      private float textLength = 0f;      /** 滚动条长度 */      private float viewWidth = 0f;      /** 文本x轴
Activity内用handler更新TextView数据
贴上主要代码:final Handler handler = new Handler(){ @Override public void handleMessage(Message msg){ super.handleMessage(msg); if(msg.what == 1){
android在线程中更新TextView
线程的实现类如下class UpdateStatus extends Thread { @Override public void run() { super.run(); while (true) { if (i == GlobalValues.AUIO_LENGTH
android如何写一个循环文字滚动的TextView
效果图: 在layout中这样来声明: <com.kaixin001.view.ScrollText android:id="@+id/news_statustxt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="1
解决TextView数据不能更新的问题以及Android Button事件响应函数的两种方法
Android Button事件响应函数的两种方法,解决TextView数据不能更新的现象。
安卓更新TextView的内容
安卓更新TextView的内容 使用子线程更新 使用Handler更新 //在类里声明一个Handler Handler mTimeHandler = new Handler() { public void handleMessage(Message msg) { if (msg.what == 0) { ...
Android TextView 不刷新解决办法
Andorid TextView 不刷新解决办法