我在方法中有以下内容onCreate()
,它必须在那里:
do {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.contacto).setIcon(R.drawable.rudeboys_icon);
builder.setMessage("hola");
builder.show(); } while(timer_dialog<10);
其中显示了一个带有文本“hello”的对话框和我的 timer_dialog,这将是我的 10 秒时间,但在 onCreate 中我不知道如何放置它。
在一个函数中,我知道它类似于:
timer = new CountDownTimer(tiempo_dialog * 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
crono.setText("" + String.format(FORMAT, TimeUnit.MILLISECONDS.toHours(millisUntilFinished),
TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millisUntilFinished)),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
}
@Override
public void onFinish() { //finalizar dialog } }
我该怎么做 ?我放了一个 do-while ,它是最有效的吗?
Builder 仅用于构建对话框。检查它是否显示或丢弃它你必须在对话框中做
在您的代码中,您在
while
. 最好在一段时间后结束对话Handler
。处理程序:
您添加一个处理程序,以便在 10 秒后关闭。
您可以使用处理程序: 如何在几秒钟后更新 UI 或方法?
例如,如果您想在 10 秒后调用某个方法:
首先,您创建对话框并显示它,当创建对话框时,您可以创建一个调用该方法的处理程序
dismiss()
来关闭它。如果您在片段中,则使用的上下文将通过以下方式获得getActivity()
:例子:
至于您的代码,您正在创建和显示几个
AlertDialog
,而变量的值timer_dialog
小于 10...这是错误的,你只需要创建一个
AlertDialog
.要解决单击外部时屏幕关闭的问题,您只需创建如下对话框:
问候。
在我使用 DialogFragment 的情况下,将 Dialog 声明为 final
之前(不添加计时器):
之后:
然后添加一个 Handler 来创建计时器