-1

我在理解 runOnUiThread() 时遇到了一些问题。我想不断更新 TextView 但没有任何反应。GUI 仍然被阻止。有人可以帮我吗?

@Override public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);        
        runner();
    }

public void runner (){
    String[] testFiles = GeneralHelper.getPictureFileList();
    TextView text = (TextView) findViewById(R.id.textfeld); 
    for (int i = 0; i < 2; i++) 
    {   
        runOnUiThread(new Runnable() {
            public void run() {
                text.setText("\n" + GeneralHelper.getPictureFileList()[i]);    
            }


           });
           ...
           // image analysis
}}
4

2 回答 2

0

循环只有 2 次迭代,它完成得如此之快,以至于你甚至看不到变化。你只看到结果GeneralHelper.getPictureFileList()[1] 而且你在 UiThread 里面,所以你不应该使用它。只是:

public void runner (){
    String[] testFiles = GeneralHelper.getPictureFileList();
    TextView text = (TextView) findViewById(R.id.textfeld); 
    for (int i = 0; i < 2; i++) 
    {
            text.setText("\n" + GeneralHelper.getPictureFileList()[i]);    
    }
}
于 2013-01-25T17:58:10.160 回答
-1

听起来您需要创建自己的计时器类,您可以在其中包含 runOnUiThread() 来更新您的 TextView。这就是我在我编写的程序中所做的,我需要在用户按下按钮时显示每秒计数的时间。

于 2013-01-25T17:55:38.830 回答