安装了CountDown TImer的对话框
问题描述:
在我的应用程序中,我将推送通知显示为具有两个按钮的对话框是和否。我需要在对话框标题中显示一个计时器(20秒)。安装了CountDown TImer的对话框
如果用户点击是的,它应该去一个活动。
如果用户单击否,在定时器结束之前对话框会被取消。
倒计时结束后,对话框应该消失。我应该如何实现这一点?
这里是我的警报对话框方法
public void showAlertDialog(final Context context, String title, String message,
Boolean status) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
// Setting Dialog Title
alertDialog.setTitle(title);
// Setting Dialog Message
alertDialog.setMessage(message);
// Setting Icon to Dialog
//alertDialog.setIcon(R.drawable.fail);
// Setting Positive "Yes" Button
alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "You clicked on YES", Toast.LENGTH_SHORT).show();
}
});
// Setting Negative "NO" Button
alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "You clicked on NO", Toast.LENGTH_SHORT).show();
dialog.cancel();
}
});
// Showing Alert Message
//alertDialog.setIcon(R.drawable.counter);
alertDialog.show();
}
答
我不建议加入到倒计时对话框的标题。如果您将其添加到否按钮,则更明显的是用户在倒计时完成后会发生什么。
下面是AlertDialog的代码,可以做到这一点。
AlertDialog dialog = new AlertDialog.Builder(this)
.setTitle("Notification Title")
.setMessage("Do you really want to delete the file?")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO: Add positive button action code here
}
})
.setNegativeButton(android.R.string.no, null)
.create();
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
private static final int AUTO_DISMISS_MILLIS = 6000;
@Override
public void onShow(final DialogInterface dialog) {
final Button defaultButton = ((AlertDialog) dialog).getButton(AlertDialog.BUTTON_NEGATIVE);
final CharSequence positiveButtonText = defaultButton.getText();
new CountDownTimer(AUTO_DISMISS_MILLIS, 100) {
@Override
public void onTick(long millisUntilFinished) {
defaultButton.setText(String.format(
Locale.getDefault(), "%s (%d)",
positiveButtonText,
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) + 1 //add one so it never displays zero
));
}
@Override
public void onFinish() {
if (((AlertDialog) dialog).isShowing()) {
dialog.dismiss();
}
}
}.start();
}
});
dialog.show();
+0
相当不错的解决方案;另外 - 我相信,你应该记住timer var并在对话框中取消它。 – 2017-07-05 18:05:26
具有u您的应用 – 2014-09-03 09:20:18
歌厅PUCH notifecation是我得到 – user1799171 2014-09-03 09:21:09
创建接收器检查PUCH通知来在的onReceive基法打开的对话框时PUCH notificatin加油设备 – 2014-09-03 09:22:34