我正在进行一些标签式活动,用户可以点击顶部的按钮标签,从一个活动导航到另一个活动。单击任何选项卡时,将显示ProgressDialog,并显示“正在加载...”视图。我想管理它,因为在加载过程中,如果用户按下后退按钮,它将返回上一个活动。
我尝试使用ProgressDialog的onClickListener来实现它,但我遇到了2个问题。
第一个问题出在加载对话框中:如果用户点击屏幕上的任意位置,则会触发进度对话框的onClickListener。我不希望这种情况发生;它只能从按钮后面触发。
第二个问题是当出现“正在加载...”时,我的onClickListener工作1或1.5秒,而它可见约2-3秒。如果我在1或1.5秒后按下后退按钮。进度对话框侦听器不执行任何操作并保持相同的活动?
答案 0 :(得分:0)
覆盖onBackPressed()
方法并首先关闭对话框,然后让super.onBackPressed()
工作,这样它会关闭对话框,然后您可以返回正常屏幕。
其次,只需设置dialog.setCancellable(false);
,即使用户点击屏幕的任何位置,用户也无法这样做。
例如,
@Override
public void onBackPressed() {
dialog.dismiss();
super.onBackPressed();
}
void create ProgressDialog() {
dialog = new ProgressDialog/Alerdialog.Builder(this);
dialog.setTitle(tile);
dialog.setMessage(message);
dialog.setCancellable(false);
dialog.show();
}
一切都好!
答案 1 :(得分:0)
这就是我解决问题的方法:
public ProgressDialog pDialog;
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
if (pDialog != null)
if (pDialog.isShowing())
return;
super.onBackPressed();
}