1

我有一些选项卡类型的活动,用户可以在单击顶部的按钮选项卡时从一个活动导航到另一个活动。单击任何选项卡时,会出现一个 ProgressDialog,带有“正在加载...”视图。我想管理它,因为在加载过程中,如果用户按下后退按钮,它会返回到上一个活动。

我已经尝试使用 ProgressDialog 的 onClickListener 来实现它,但我遇到了 2 个问题。

第一个问题是在加载对话框期间:如果用户单击屏幕上的任何位置,则会触发进度对话框的 onClickListener。我不希望这种情况发生;它只能从按钮后面触发。

第二个问题是当“正在加载...”出现时,我的 onClickListener 工作 1 或 1.5 秒,而它可见大约 2-3 秒。如果我在 1 或 1.5 秒后按下返回按钮。进度对话框侦听器不执行任何操作并保持相同的活动?

4

2 回答 2

0

这就是我解决问题的方法:

  public ProgressDialog pDialog;
    @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        if (pDialog != null)
            if (pDialog.isShowing())
                return;

        super.onBackPressed();
    }
于 2012-12-09T19:29:44.243 回答
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();
}

一切顺利!

于 2012-07-18T15:05:04.903 回答