Android 如何使用处理程序更新ProgressBar?
我是Android新手,我正在尝试通过一个教程来学习如何将Android 如何使用处理程序更新ProgressBar?,android,android-progressbar,android-handler,Android,Android Progressbar,Android Handler,我是Android新手,我正在尝试通过一个教程来学习如何将ProgressBar与处理程序结合使用。请注意,我的目标是API 11 以下是我的代码,其中包含内联错误: public class HandlerDemo extends Activity { ProgressBar bar; Handler handler = new Handler() { @Override public void handleMessage() { //
ProgressBar
与处理程序结合使用。请注意,我的目标是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);
}
}
公共类HandlerDemo扩展活动{
进度条;
Handler=newhandler(){
@凌驾
public void handleMessage(){//在此行显示“方法必须重写或实现超类型方法”。
巴.递增进度(5);
}
@凌驾
公众假期结束(){
}
@凌驾
公共图书馆{
}
@凌驾
公共无效发布(日志记录arg0){
}
};
AtomicBoolean isRunning=新的AtomicBoolean(false);
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u handler\u demo);
bar=(ProgressBar)findviewbyd(android.R.id.progress);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.activity\u handler\u demo,menu);
返回true;
}
public void onStart(){
super.onStart();
进度条(0);
线程背景=新线程(newrunnable(){
@凌驾
公开募捐{
试一试{
对于(int i=0;i<20&&isRunning.get();i++){
睡眠(1000);
handler.sendMessage(handler.obtainMessage());//在此行显示“类型处理程序的方法未定义”。
}
}捕获(可丢弃的t){}
}
});
isRunning.set(真);
background.start();
}
公共void onStop(){
super.onStop();
isRunning.set(false);
}
}
为什么会出现这些错误?您的处理程序导入错误。它应该是android.os.Handler
它显示警告,并且处理程序类必须是静态的,否则可能会发生泄漏NX buddy…它工作了,我被ctrl+shft+o搞砸了…thnx a lotIf如果这个问题得到了回答,我建议接受答案并发布一个新问题,以及更新的代码和错误日志。