如何在alertdialog中处理超时。它有标准的是/否按钮,但如果用户在5分钟内没有按任何东西,我想调用无按钮代码。 我在Android页面中查看了这个类,并且没有可以调用来设置超时的函数。
答案 0 :(得分:6)
我使用Dialog来实现此目的,而不是使用警告对话框。
new Handler().postDelayed(new Runnable() {
public void run() {
yourDialogObj.dismiss();
}
}, 2000);
这里2000是毫秒,
希望这有帮助
答案 1 :(得分:5)
这是一个例子,希望对你有帮助。
public class MainActivity extends Activity {
static final int TIME_OUT = 5000;
static final int MSG_DISMISS_DIALOG = 0;
private AlertDialog mAlertDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
createDialog();
}
private Handler mHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case MSG_DISMISS_DIALOG:
if (mAlertDialog != null && mAlertDialog.isShowing()) {
mAlertDialog.dismiss();
}
break;
default:
break;
}
}
};
private void createDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setPositiveButton("OK", null)
.setNegativeButton("cacel", null);
mAlertDialog = builder.create();
mAlertDialog.show();
// dismiss dialog in TIME_OUT ms
mHandler.sendEmptyMessageDelayed(MSG_DISMISS_DIALOG, TIME_OUT);
}
}
答案 2 :(得分:1)
您可以使用Handler解决问题。 你只需要一个倒数计时器like this page
它让您了解如何做到这一点。 希望它可以帮到你。