【问题标题】:How do I update a ProgressBar using a Handler?如何使用 Handler 更新 ProgressBar?
【发布时间】:2013-03-14 17:28:33
【问题描述】:

我是 Android 新手,我正在尝试学习有关使用 ProgressBarHandler 的教程。请注意,我的目标是 API 11。

这是我的代码,其中包含我正在内联的错误:

public class HandlerDemo extends Activity {

    ProgressBar bar;
    Handler handler = new Handler() {

        @Override
        public void handleMessage() {   // Shows "method must override or implement supertype method" on this line.
            bar.incrementProgressBy(5);
        }

        @Override
        public void close() {

        }

        @Override
        public void flush() {

        }

        @Override
        public void publish(LogRecord arg0) {

        }
    };

    AtomicBoolean isRunning = new AtomicBoolean(false);

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_handler_demo);
        bar = (ProgressBar)findViewById(android.R.id.progress);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_handler_demo, menu);
        return true;
    }

    public void onStart() {
        super.onStart();
        bar.setProgress(0);

        Thread background = new Thread(new Runnable() {

            @Override
            public void run() {
                try {
                    for(int i = 0; i < 20 && isRunning.get(); i++) {
                        Thread.sleep(1000);
                        handler.sendMessage(handler.obtainMessage()); // Shows "Method is undefined for type Handler" on this line.
                    }
                } catch(Throwable t) { }
            }
        });
        isRunning.set(true);
        background.start();
    }

    public void onStop() {
        super.onStop();
        isRunning.set(false);
    }
}

为什么会出现这些错误?

【问题讨论】:

    标签: android android-progressbar android-handler


    【解决方案1】:

    您的Handler 导入错误。应该是android.os.Handler

    【讨论】:

    • 它还显示警告处理程序类必须是静态的,否则可能会发生泄漏
    • thnx 哥们...它成功了我被 ctrl+shft+o 搞砸了...thnx 很多
    • 如果此问题得到解答,我建议您接受答案并使用更新的代码和错误的 logcat 发布一个新问题。
    猜你喜欢
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多