本人初学者,对着个有关问题迷惑很久,求解

本人菜鸟,对着个问题迷惑很久,求解package com.example.progressbar02import android.os.Bundleimport a

本人菜鸟,对着个问题迷惑很久,求解







package com.example.progressbar02;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.Button;



public class MainActivity extends Activity {

//声明控件的变量
Button  startButton = null;
ProgressBar bar = null;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//根据控件的Id得到控件的对象,并为控件设置监听器 
bar = (ProgressBar)findViewById(R.id.progressBar);
startButton = (Button)findViewById(R.id.startButton);
startButton.setOnClickListener(new ButtonListener());
}


class ButtonListener implements View.OnClickListener {
        public void onClick(View v){
            bar.setVisibility(View.VISIBLE);
        updateBarHandler.post(updateThread);
        }
}

//使用匿名内部类来复写Handler当中的handlerMessage方法
 Handler updateBarHandler = new Handler(){
//(程序运行到这就不运行了)
  public  void handlerMessage (Message msg){
  System.out.println("Try Test");
 bar.setProgress(msg.arg1);
 updateBarHandler.post(updateThread);
 }
 };
//线程类,该类使用匿名内部类方式来进行声明
      Runnable updateThread  = new Runnable() {
int i=0; 
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("Begin Thread");
i = i+10;
//得到一个消息对象,Message类是由Android操作系统提供
Message msg = updateBarHandler.obtainMessage();
//姜msg对象的arg1参数的值设置为i;用arg1和arg2两个成员变量传递消息,优点是系统性能消耗较少
msg.arg1 = i;
try {
//设置当前显示睡眠1秒
Thread.sleep(1000);
}catch( InterruptedException e){
e.getStackTrace(); 
}

//将msg对象加入消息队列中 
updateBarHandler.sendMessage(msg);
if(i==100){
//当i的值为100时,就将线程对象从Handler中移除 
updateBarHandler.removeCallbacks(updateThread);
}
}
};

@Override
public boolean onCreateOptionsMenu(Menu menu) {


// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

Android
[解决办法]
package com.example.fortest2;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;

public class MainActivity extends Activity {

Button button;
ProgressBar progressBar;
int position = 0;
boolean flags = false;
Handler myHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
updateProgressBar();
super.handleMessage(msg);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init_All_Views();
}

private void init_All_Views() {
button = (Button)findViewById(R.id.button1);
progressBar = (ProgressBar)findViewById(R.id.progressBar1);
progressBar.setMax(100);
progressBar.setProgress(0);

button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
flags = !flags;
if(flags){
myHandler.sendEmptyMessage(0);
}else{
myHandler.removeMessages(0);
}
}
});
}

protected void updateProgressBar() {
Message msg = new Message();
msg.arg1 = position % 100;
progressBar.setProgress(position);
position = (position + 10) % 100;
myHandler.sendEmptyMessageDelayed(0, 1000);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.


getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}
猜测你的意思 然后写的

结贴本人初学者,对着个有关问题迷惑很久,求解
[解决办法]
http://blog.csdn.net/thinkpadshi/article/details/8184362
LZ参考一下