Android自定义进度条对话框,android AlertDialog控件(日期,时间,进度条等)

AlertDialog控件自定义对话框通过getView方法也可以显示自定义布局

PopupWindow可以以下拉和指定位置的方式弹出一个窗口

日期和时间控件对话框是AlertDialog的子类,它们通常使用在特定场合

ProgressDialog是进度对话框,通常与Handler一起使用,用来提示用户等待耗时操作。

一、时间控件/**

* 时间控件

* @param v

*/

public void btnClick(View v){

Calendar calendar = Calendar.getInstance();

new DatePickerDialog(this,

new DatePickerDialog.OnDateSetListener() {

@Override

public void onDateSet(DatePicker datePicker, int year, int month, int dayOfMonth) {

String text = "新选择了:"+ year + "年" + month + "月" + dayOfMonth + "日";

Toast.makeText(DatePickDialogActivity.this, text, Toast.LENGTH_SHORT).show();

}

}

,calendar.get(Calendar.YEAR)

,calendar.get(Calendar.MONTH)

,calendar.get(Calendar.DAY_OF_MONTH)).show();

}

bVbMyo0

二、时间控件/**

* 时间控件

* @param v

*/

public void btnClick2(View v){

Calendar calendar = Calendar.getInstance();

new TimePickerDialog(this,

new TimePickerDialog.OnTimeSetListener(){

@Override

public void onTimeSet(TimePicker timePicker, int hourOfDay, int minute) {

String text = "新选择了:"+hourOfDay + "时" + minute + "分";

Toast.makeText(DatePickDialogActivity.this, text, Toast.LENGTH_SHORT).show();

}

}

// 设置初始时间

,calendar.get(Calendar.HOUR_OF_DAY)

,calendar.get(Calendar.MINUTE)

// true表示采用24小时时差

,true).show();

}

bVbMyti

三、进度对话框Handler handler = new Handler(){

// 主线程(UI)线程

@Override

public void handleMessage(@NonNull Message msg) {

pd.dismiss();

}

};

/**

* 进度条控件

* @param v

*/

public void btnClick3(View v){

showProgress();

// 新建一个子线程

new Thread(){

@Override

public void run() {

for (int i = 0; i < 3; i++) { // 耗时3秒

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

handler.sendEmptyMessage(0);

}

}.start();

}

ProgressDialog pd;

public void showProgress(){

pd = new ProgressDialog(this);

pd.setTitle("任务执行中...");

pd.setMessage("请稍后...");

pd.setCancelable(true);

pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);

pd.show();

}

bVbMyxw

四、水平进度条Handler handler = new Handler(){

// 主线程(UI)线程

@Override

public void handleMessage(@NonNull Message msg) {

if(msg.what == 0){

pd.dismiss();

}else if(msg.what == 1){

pd.setProgress(msg.arg1);

}

}

};

/**

* 进度条控件

* @param v

*/

public void btnClick3(View v){

showProgress();

// 新建一个子线程

new Thread(){

@Override

public void run() {

for (int i = 0; i < 10; i++) { // 耗时

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

Message message = Message.obtain();

message.arg1 = i;

message.what = 1;

handler.sendMessage(message);

}

handler.sendEmptyMessage(0);

}

}.start();

}

ProgressDialog pd;

public void showProgress(){

pd = new ProgressDialog(this);

pd.setTitle("任务执行中...");

pd.setMessage("请稍后...");

pd.setCancelable(true);

pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

pd.setMax(10);

pd.show();

}

bVbMyDN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值