首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

运用handler处理progressbar

2012-08-13 
使用handler处理progressbar1.设置布局文件?xml version1.0 encodingutf-8?LinearLayout xmlns:a

使用handler处理progressbar

1.设置布局文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     > <ProgressBar android:id="@+id/ProgressBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="200dp" android:layout_height="wrap_content" android:visibility="gone" /> <Button android:id="@+id/Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="开始"/> </LinearLayout> 

?

2.处理progressbar的类

public class ProgressBarTestActivity extends Activity {/** Called when the activity is first created. */private ProgressBar bar;private Button startButton;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// 得到ProgressBarbar = (ProgressBar) findViewById(R.id.ProgressBar);startButton = (Button) findViewById(R.id.Button);// 当按钮按下时开始执行startButton.setOnClickListener(new ButtonListener());}class ButtonListener implements OnClickListener {public void onClick(View v) {bar.setVisibility(View.VISIBLE);updateBarHandler.post(updateThread);}}Handler updateBarHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {bar.setProgress(msg.arg1);updateBarHandler.post(updateThread);}};Runnable updateThread = new Runnable() {int i = 0;public void run() {System.out.println("begin thread");i = i + 10;// 得到一个消息对象Message msg = updateBarHandler.obtainMessage();msg.arg1 = i;try {Thread.sleep(1000);} catch (Exception e) {e.printStackTrace();}updateBarHandler.sendMessage(msg);if (i == 100) {updateBarHandler.removeCallbacks(updateThread);}}};}

?效果如图:


运用handler处理progressbar
?

热点排行