Android循环更新文本视图
我正在尝试创建一个更新TextView的循环。 其想法是创建某种进度指标,以增加 装载程序 这是我尝试过的,但结果是我只看到循环的最后一次更新,所以我得到“100%”,没有递增Android循环更新文本视图,android,textview,Android,Textview,我正在尝试创建一个更新TextView的循环。 其想法是创建某种进度指标,以增加 装载程序 这是我尝试过的,但结果是我只看到循环的最后一次更新,所以我得到“100%”,没有递增 runOnUiThread(new Runnable() { public void run() { final TextView progesss = (TextView)findViewById(R.id
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) {
}
}
}
});
runOnUiThread(新的Runnable(){
公开募捐{
最终文本视图进度=(文本视图)findViewById(R.id.progress);
对于(int k=1;k您的Runnable
在执行thread.sleep
时会阻止UI线程。您应该再次发布一个新的Runnable
。请尝试以下操作:
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);
}
}
});
final Handler=new Handler();
handler.post(新的Runnable(){
私有int k=0;
公开募捐{
最终文本视图进度=(文本视图)findViewById(R.id.progress);
proges.setText(String.valueOf(k)+“%”;
k++;
如果(k您使用后台线程和UI线程
public class testAsync extends AsyncTask<Void, Integer, Voi>{
TextView progress; // You will set TextView referans
protected void doInBackground(){
for(int k=1 ; k<=100; k++)
{
try {
Thread.sleep(1000);
publishProgress(k);
} catch(InterruptedException e) {}
}
}
protected void onProgressUpdate(Integer.. values)
{
progress.setText(values[0]+");
}
}
}
公共类testAsync扩展异步任务{
TextView progress;//您将设置TextView引用
受保护的void doInBackground(){
对于(int k=1;k