模拟文件拷贝:
要求:要用progressDialog和子线程来模拟显示拷贝进度;进度完成后在主界面提示拷贝完成,分别使用普通方式和消息机制编写。
要求:要用progressDialog和子线程来模拟显示拷贝进度;进度完成后在主界面提示拷贝完成,分别使用普通方式和消息机制编写。

1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:paddingBottom="@dimen/activity_vertical_margin" 7 android:paddingLeft="@dimen/activity_horizontal_margin" 8 android:paddingRight="@dimen/activity_horizontal_margin" 9 android:paddingTop="@dimen/activity_vertical_margin" 10 tools:context="com.example.wang.xuexi.CopyActivity" 11 android:orientation="vertical"> 12 13 <Button 14 android:layout_width="match_parent" 15 android:layout_height="wrap_content" 16 android:text="拷贝" 17 android:onClick="bt_OnClick"/> 18 19 <TextView 20 android:layout_width="wrap_content" 21 android:layout_height="wrap_content" 22 android:text="拷贝结果" 23 android:id="@+id/tv_2"/> 24 25 26 </LinearLayout>

1 package com.example.wang.xuexi; 2 3 import android.app.ProgressDialog; 4 import android.os.Handler; 5 import android.os.Message; 6 import android.support.v7.app.AppCompatActivity; 7 import android.os.Bundle; 8 import android.view.View; 9 import android.widget.TextView; 10 11 public class CopyActivity extends AppCompatActivity { 12 13 TextView tv_2; 14 15 Handler h=new Handler(){ 16 @Override 17 public void handleMessage(Message msg) { 18 super.handleMessage(msg); 19 20 if (msg.what==100) 21 { 22 String m=msg.obj.toString(); 23 24 tv_2.setText(m); 25 } 26 } 27 }; 28 29 @Override 30 protected void onCreate(Bundle savedInstanceState) { 31 super.onCreate(savedInstanceState); 32 setContentView(R.layout.activity_copy); 33 34 tv_2=(TextView)findViewById(R.id.tv_2); 35 } 36 37 public void bt_OnClick(View v) 38 { 39 final ProgressDialog progressDialog=new ProgressDialog(this); 40 41 progressDialog.setTitle("正在拷贝"); 42 progressDialog.setMessage("请等待..."); 43 progressDialog.setCancelable(false); 44 45 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 46 47 progressDialog.show(); 48 49 new Thread(new Runnable() { 50 @Override 51 public void run() { 52 53 for (int i=0;i<=100;i++) 54 { 55 progressDialog.setProgress(i); 56 57 try { 58 59 Thread.sleep(200); 60 }catch (Exception e){ 61 62 } 63 } 64 65 66 runOnUiThread(new Runnable() { 67 @Override 68 public void run() { 69 70 // tv_2.setText("拷贝完成"); 71 72 Message m=Message.obtain(); 73 m.what=100; 74 m.obj="拷贝完成"; 75 h.sendMessage(m); 76 77 } 78 }); 79 80 progressDialog.dismiss(); 81 82 } 83 }).start(); 84 85 86 87 } 88 }