转圏圏型的等待
ProgressBarDemo.java:
Calculation.java
main.xml文件
ProgressBarDemo.java:
package com.lveyo.android.demo.progressbar; import android.app.Activity; import android.app.ProgressDialog; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.Button; import android.widget.TextView; public class ProgressBarDemo extends Activity { privateTextView statusTextView; privateButton beginBtn; privateProgressDialog progressDialog; @Override public voidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); statusTextView = (TextView)findViewById(R.id.status); beginBtn = (Button)findViewById(R.id.beginBtn); setListener(); } privateHandler handler = new Handler(){ @Override public voidhandleMessage(Message msg) { //关闭ProgressDialog progressDialog.dismiss(); //更新UI statusTextView.setText("Completed!"); }}; private voidsetListener(){ beginBtn.setOnClickListener(new View.OnClickListener() { @Override public voidonClick(View v) { //显示ProgressDialog progressDialog = ProgressDialog.show(ProgressBarDemo.this,"Loading...", "Please wait...", true, false); //新建线程 newThread(){ @Override public voidrun() { //需要花时间计算的方法 Calculation.calculate(4); //向handler发消息 handler.sendEmptyMessage(0); }}.start(); } }); } }
Calculation.java
package com.lveyo.android.demo.progressbar; public class Calculation { publicstatic void calculate(int sleepSeconds){ try { Thread.sleep(sleepSeconds * 1000); } catch(Exception e) { // TODO:handle exception } } }
main.xml文件
<?xml version="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/status" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:id="@+id/beginBtn" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="begin" /> </LinearLayout>