进度条对话框ProgressDialog和Message

来源:互联网 发布:java面向对象代码实例 编辑:程序博客网 时间:2024/06/05 01:14

public class MainActivity extends Activity {

private  TextView textView;//之后要对textView中的信息进行修改,所以就必须先把textView取出来
private Handler handler=new Handler(new Callback(){  //实现Callback接口
@Override
public boolean handleMessage(Message msg) {
ProgressDialog dialog=(ProgressDialog) msg.obj;  //把dialog给取出来
dialog .cancel();   //让dialog关闭
if(msg.arg1==1){
textView.setText("下载成功!!!");
}else{
textView.setText("下载失败!!!");
}
return false;
}
});   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView=(TextView) findViewById(R.id.textView1);    //把extView放置到成员变量中,整个成员方法的内部都可以使用,对textView信息的改变       
    }
    public void test1(View view){
    final ProgressDialog dialog=new ProgressDialog(this);  //创建一个ProgressDialog绑定到当前的activity
    //定义一些显示的内容
    dialog.setTitle("标题信息");
    dialog.setMessage("正在下载!!!!");
    dialog.show();//让对话框显示出来
    new Thread(new Runnable() {      
@Override
public void run() {
try {
Thread.sleep(6000);     //执行一个耗时任务
} catch (InterruptedException e) {
e.printStackTrace();
}
//更新UI组件:dialog 消失,textView的文本内容
Message msg=new Message();   //创建一个Message对象
msg.obj=dialog;     //把dialog复制给obj
msg.arg1=2;     //1下载成功  2下载失败
Bundle bundle=msg.getData();   //bundle类似一个map,key只能为string
handler.sendMessage(msg);   //sendMessage()方法会把一个消息传递给handleMessage
}
}).start();
    }
    public void test2(View view){
    ProgressDialog dialog=new ProgressDialog(this);  //创建一个ProgressDialog绑定到当前的activity
    //定义一些显示的内容
    dialog.setTitle("标题信息");
    dialog.setMessage("正在下载!!!!");
    dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);    //设置对话框的样式
    dialog.setMax(100);     //设置进度条的总长度为100
    dialog.incrementProgressBy(15);   //设置当前的刻度增加到15
    dialog.show(); //让对话框显示出来
    }
}

0 0