Main display layout and code:
Activity_main.xml:
<linearlayout xmlns:android= "Http://schemas.android.com/apk/res/android"
Xmlns:tools= "Http://schemas.android.com/tools"
Android:layout_width= "Match_parent"
android:layout_height= "Match_parent"
android:orientation= "Vertical" >
<button
Android:id= "@+id/btdownload"
Android:layout_width= "Match_parent"
android:layout_height= "Wrap_content"
android:text= "Click to download"
/>
<progressbar
Android:id= "@+id/pbdownload"
Android:layout_width= "Match_parent"
android:layout_height= "Wrap_content"
android:max= "100"
Android:progress= "2"
Style= "@android: Style/widget.progressbar.horizontal"
/>
<textview
Android:id= "@+id/tvdownload"
Android:layout_width= "Wrap_content"
android:layout_height= "Wrap_content"
android:text= "0%"/>
</LinearLayout>
Java code:
Package com.litsoft.main;
Import android.support.v7.app.ActionBarActivity;
Import Android.os.Bundle;
Import Android.os.Handler;
Import Android.os.Message;
Import Android.os.SystemClock;
Import Android.view.Menu;
Import Android.view.MenuItem;
Import Android.view.View;
Import Android.view.View.OnClickListener;
Import Android.widget.ProgressBar;
Import Android.widget.TextView;
Import Android.widget.Toast;
public class Mainactivity extends Actionbaractivity {
Private ProgressBar pbdownload;
Private TextView tvdownload;
Private Handler Handler;
Private final static int start_downing = 0;
Private final static int finish_downing = 1;
@Override
protected void OnCreate (Bundle savedinstancestate) {
Super.oncreate (savedinstancestate);
Setcontentview (R.layout.activity_main);
Initview ();
Inithandler ();
Setlistener ();
}
private void Setlistener () {
TODO auto-generated Method Stub
Findviewbyid (r.id.btdownload). Setonclicklistener (New Onclicklistener () {
@Override
public void OnClick (view view) {
TODO auto-generated Method Stub
New Thread () {
@Override
public void Run () {
TODO auto-generated Method Stub
for (int i=0;i<=100;i++) {
Systemclock.sleep (200);
Message message = Message.obtain ();
Message.what = start_downing;
MESSAGE.ARG1 = i;
Pbdownload.setprogress (i);
Handler.sendmessage (message);
}
Message message = Message.obtain ();
Message.what = finish_downing;
Handler.sendmessage (message);
}
}.start ();
}
});
}
private void Initview () {
TODO auto-generated Method Stub
Pbdownload = (ProgressBar) Findviewbyid (r.id.pbdownload);
Tvdownload = (TextView) Findviewbyid (r.id.tvdownload);
}
private void Inithandler () {
TODO auto-generated Method Stub
Handler = new Handler () {
@Override
public void Handlemessage (Message msg) {
TODO auto-generated Method Stub
Switch (msg.what) {
Case start_downing:
Tvdownload.settext (msg.arg1+ "%");
Break
Case finish_downing:
Toast.maketext (mainactivity.this, "Download Done", 20000). Show ();
Break
}
}
};
}
}
Effect:
650) this.width=650; "src=" http://img.blog.csdn.net/20141203143109687 "/>
650) this.width=650; "src=" http://img.blog.csdn.net/20141203143036425 "/>
This article from "Follow the heart of the other side" blog, declined reprint!
Handle usage of thread communication