Progressdiog是进度条对话框。
**> 步骤。1创建一个progressDialog对象,prodgressDialog pd = new prodgressDialog (this);
2.设置相关的属性:
setMessage()设置信息类容
setCancelable(true);设置对话框是否可以用取消按钮关闭setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);设置进度条的风格;
setIndeterminate(true);设置进度条是否显示进度;**
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
final static int MAX_PROGRAESS = 100;
private int[] data = new int[50];
int prograessStatus = 0;
int hasdata = 0;
private int data2=1;
private ProgressDialog p1, p2;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if(msg.what==0x123)
{
p2.setProgress(prograessStatus);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button1).setOnClickListener(this);
findViewById(R.id.button2).setOnClickListener(this);
findViewById(R.id.button3).setOnClickListener(this);
}
public void showSpinner()
{
ProgressDialog.show(MainActivity.this, "任务执行中", "任务执行中,请稍等", false, true);
}
public void showIndeterminate()
{
p1 = new ProgressDialog(MainActivity.this);
p1.setTitle("任务执行中");
p1.setMessage("任务执行中,请稍等");
//设置对话框可以用取消按钮关闭;
p1.setCancelable(true);
//设置对话框的进度条的风格
p1.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//设置对话框的进度条是否显示进度
p1.setIndeterminate(true);
p1.show();
}
public void showprogress()
{
p2 = new ProgressDialog(MainActivity.this);
p2.setMax(MAX_PROGRAESS);
p2.setTitle("任务完成百分比");
p2.setMessage("耗时完成的任务的百分比");
//设置对话框不能用取消按钮关闭
p2.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//设置进度条是否显示进度条
p2.setIndeterminate(false);
p2.show();
new Thread(){
@Override
public void run() {
super.run();
while(prograessStatus<MAX_PROGRAESS)
{
prograessStatus = MAX_PROGRAESS*dowork()/data.length;
int a = data.length;
handler.sendEmptyMessage(0x123);
}
if(prograessStatus>=MAX_PROGRAESS)
{
p2.dismiss();
}
}
}.start();
}
//模拟一个耗时的操作
private int dowork() {
data[hasdata++] = (int) (Math.random()*100);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
return hasdata;
}
@Override
public void onClick(View v) {
switch (v.getId())
{
case R.id.button1:showSpinner();
break;
case R.id.button2:showIndeterminate();
break;
case R.id.button3:showprogress();
break;
}
}
}