当我从操作栏中选择案例2时,我试图在屏幕上弹出一个对话框,最好不要点击按钮。截至目前,我只能让它在onClick上工作,而不是在页面打开时。我如何摆脱按钮,只让它在打开几秒后显示,然后解散?感谢。
case 2:
// get button
Button btnShow = (Button)findViewById(R.id.btn_show);
btnShow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setTitle("Auto-closing Dialog");
builder.setMessage("After 2 second, this dialog will be closed automatically!");
builder.setCancelable(true);
final AlertDialog dlg = builder.create();
dlg.show();
final Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
dlg.dismiss(); // when the task active then close the dialog
t.cancel(); // also just top the timer thread, otherwise, you may receive a crash report
}
}, 2000); // after 2 second (or 2000 miliseconds), the task will be active.
}
});
答案 0 :(得分:3)
您可以根据您的要求使用Handle:
case 2:
// get button
Button btnShow = (Button)findViewById(R.id.btn_show);
btnShow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setTitle("Auto-closing Dialog");
builder.setMessage("After 2 second, this dialog will be closed automatically!");
builder.setCancelable(true);
final AlertDialog dlg = builder.create();
dlg.show();
Handler mHandler = new handler();
Runnable mRunnable = new Runnable () {
public void run() {
if(dlg != null && dlg.isShowing()) dlg.dismiss();
}
};
mHandler.postDelayed(mRunnable,2000);
}
});
更新:
我更新了删除错误的代码
此代码将在用户单击按钮2秒后关闭警报对话框。 这是你想要做的吗?
答案 1 :(得分:1)
如果您想隐藏按钮并希望使用点击功能:
Button btnShow = (Button)findViewById(R.id.btn_show);
btnShow.setVisibility(View.GONE);
btnShow.performClick();
答案 2 :(得分:0)
我真的不明白你想说的是什么。你的以下陈述令人困惑
当我选择案例2时,我试图在屏幕上弹出一个对话框 来自活动栏,
我不知道案例2和活动栏你是什么意思。但如果它是动作栏并且你在其中使用微调器,那么你可以覆盖以下方法
android.support.v7.app.ActionBar.OnNavigationListener navigationListener = new android.support.v7.app.ActionBar.OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
//Here you can implement the case
因此,当您能够显示对话框时,您可以使用对话框的开始启动计时器,然后您可以在完成计时器时关闭对话框。
我希望这对你有意义。如果您需要帮助,请回复我可以提供源代码。
答案 3 :(得分:0)
<label>Date: <input type="date" ng-value="{{task.date}}" /> </label>