首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >切换到另一个活动时如何在两个活动中显示进度对话框

切换到另一个活动时如何在两个活动中显示进度对话框
EN

Stack Overflow用户
提问于 2012-07-16 08:43:51
回答 6查看 4K关注 0票数 1

在我的android应用程序中,第一个活动调用REST来获取使用凭据的项目列表。现在,在单击任何项时,项目id将被传递,第二个活动将使用意向调用。第二个活动使用传递的id调用REST,并显示该id的子项列表。

我在第一次活动中使用进度对话框。这很好用。我希望这个进度对话框也继续在第二个活动,直到子项列表不显示。

当前,进度对话框在第二个活动开始时消失,一个空白屏幕出现,直到子列表无法获取为止。

任何人都可以指导我如何在第二次活动中继续进行进度对话,并在出现子列表时解散。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-07-16 08:54:25

有两个选项可以使用:

  1. 当第一个Activity被取消时,您可以停止对话框,然后在第二个Activity上的onCreate方法中再次显示它。正如AkashG在评论中提到的那样。
  2. 如果您真的希望在过渡到第二个Activity期间显示对话框,可以使用一个Activity而不是两个,并将该Activity的布局更改为使用第二个Activity的布局,而不是调用另一个Activity。但是,这可能很复杂,因为您将将两个Activities的特性实现为一个。
票数 0
EN

Stack Overflow用户

发布于 2012-10-09 00:31:24

这是一个黑客:

在ActivityA.java中,ProgressDialog pd声明为静态

代码语言:javascript
运行
复制
public static ProgressDialog pd;

在ActivityB.java中,使用对ActivityA.pd的静态引用,然后使用以下代码。

代码语言:javascript
运行
复制
if (ActivityA.pd != null) {
            if (ActivityA.pd.isShowing()) {
                ActivityA.pd.dismiss();
            }
            else {
                Log.e(Vars.TAG, "It is NOT SHOWING");
            }
        }
票数 2
EN

Stack Overflow用户

发布于 2012-07-16 10:59:26

你应该使用AsyncTask

代码语言:javascript
运行
复制
class FetchTask extends AsyncTask<Object, Object, Object>
{
    ProgressDialog progress;

    @Override
    protected void onPreExecute() 
    {
         super.onPreExecute();
         progress=ProgressDialog.show(Context, "", "Loading...");
    }

    @Override
    protected Object doInBackground(Object... params) 
    {

        // fetch your data here 

         return null;
    }

    @Override
    protected void onPostExecute(Object result) 
    {
        super.onPostExecute(result);
        progress.dismiss();
    }
}

然后,您可以在onCreate中执行以下任务:

代码语言:javascript
运行
复制
new FetchTask().execute();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11500794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档