不能引用不同方法中定义的内部类中的非final变量

时间:2012-07-27 09:22:23

标签: android

new Thread(new Runnable() 
                {
                    public void run() {
                        while ( statusStr==null)
                        {
                            progressBarHandler.post(new Runnable() {
                                public void run() {
                                    progressBar.setProgress(progressBarStatus);
                                }
                            });
                        }

                    }
                    }).start();

朋友们,我提到了其他问题,但我仍然感到困惑,所以请帮助我解决这个问题。我无法将statusStr保持为最终状态,因为应用程序工作时它的值正在更新,所以请给我一个解决方案。

2 个答案:

答案 0 :(得分:3)

您可以全局声明变量,这样就不会强制您将其更改为final。

答案 1 :(得分:0)

将progressBar声明为final或将其声明为GlobalVariable。

像声明最终变量一样,执行如下操作:

final ProgressBar progressBar= ProgressBar.show(this, "title", "message");
    new Thread(new Runnable() 
                    {
                        public void run() {
                            while ( statusStr==null)
                            {
                                progressBarHandler.post(new Runnable() {
                                    public void run() {
                                        progressBar.setProgress(progressBarStatus);
                                    }
                                });
                            }

                        }
                        }).start();