您的位置:首页 > 其它

简单记录,倒计时的AlertDialog

2013-06-03 11:19 232 查看
一个简单的显示倒计时的alertdialog。



dialog显示及开始倒计时,倒计时结束则让alertdialog消失,或者是alertdialog消失取消计时。

不依赖activity显示dialog,需要权限:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>


alertdialog的创建:

public void CreateDialog() {
if (mAlertDialog != null) {
return;
}
LayoutInflater inflater = LayoutInflater.from(mContext);
View v = inflater.inflate(R.layout.dialog_timertask, null);
if (v != null) {
mTextView = (TextView) v.findViewById(R.id.dialog_text);
}
Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle("倒计时:");
builder.setView(v);
builder.setNegativeButton("cancel", null);
builder.setPositiveButton("sure", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {

}
});
mAlertDialog = builder.create();
mAlertDialog.getWindow().setType(
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);//显示
mAlertDialog.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
mAlertDialog = null;
if (mCountDownTimer!=null) {
mCountDownTimer.cancel();
mCountDownTimer=null;
}
}
});
}


倒计时:

private void CountDown(){
if (mCountDownTimer!=null) {
return;
}

mCountDownTimer = new CountDownTimer(8000,1000) {

@Override
public void onTick(long millisUntilFinished) {
mTextView.setText(millisUntilFinished/1000+"s");
}

@Override
public void onFinish() {
if (mAlertDialog!=null) {
mAlertDialog.dismiss();
}
}
};
mCountDownTimer.start();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: