标签: progressdialog

ProgressDialog - 如何删除数字

我正在关注ApiDemos中的进度对话框示例.一切都很好 - 除了一件事 - 我想删除栏下面出现的数字(运行从0到.getMax()的数字.

找不到怎么做.

任何人?

大利

android progressdialog

20
推荐指数
4
解决办法
7864
查看次数

从AsyncTask更新Activity中的进度对话框

在我的应用程序中,我正在AsyncTask按照Android教程的建议进行一些紧张的工作,并ProgressDialog在我的主要活动中显示:

dialog = ProgressDialog.show(MyActivity.this, "title", "text");
new MyTask().execute(request);
Run Code Online (Sandbox Code Playgroud)

之后MyTask我将结果发回活动:

class MyTask extends AsyncTask<Request, Void, Result> {

    @Override protected Result doInBackground(Request... params) {
        // do some intense work here and return result
    }

    @Override protected void onPostExecute(Result res) {
        postResult(res);
    }
}
Run Code Online (Sandbox Code Playgroud)

在结果发布时,在主要活动中我隐藏了对话框:

protected void postResult( Result res ) {
    dialog.dismiss();
    // do something more here with result...
}
Run Code Online (Sandbox Code Playgroud)

所以一切都在这里工作正常,但我想以某种方式更新进度对话框,以便能够向用户显示一些真正的进展,而不仅仅是假的"请稍候......"消息.我可以以某种方式访问​​进度对话框MyTask.doInBackground,完成所有工作吗?

据我所知,它是作为单独的线程运行的,所以我无法与那里的主要活动"交谈",这就是为什么我用它onPostExecute来将结果推回到它.但问题是onPostExecute只有当所有工作都已完成时才调用,我想在做某事的过程中更新对话框的进度.

任何提示如何做到这一点?

android progressdialog android-asynctask

20
推荐指数
1
解决办法
4万
查看次数

加载活动时显示进度条

我有一个基于列表选择ListActivity启动另一个Activity.第二个Activity需要从互联网上加载相当数量的数据,因此在用户点击项目和Activity显示时间之间存在明显的延迟.

这是一个问题,因为我目前无法向用户表明他们的点击正在被处理(即使只是更改所选列表项的颜色就足够了,但我找不到一个好方法).理想情况下,我可以ProgressDialog在第二个Activity加载时显示不确定的信息.

我已经为此尝试了一些不同的方法,但似乎没有任何工作.


我尝试过以下方法:

  • 在第一个AsyncTask中检索可序列化数据(不是全部而是部分)Activity,并将其作为额外的数据传递给第二个.这并没有真正起作用,因为ProgressDialog我创建的onPreExecute()并没有立即显示(doInBackground()由于某些原因,它似乎延迟了处理.)

这是代码:

AsyncTask<String, Void, String> read = new AsyncTask<String, Void, String>() {
    Dialog progress;

    @Override
    protected void onPreExecute() {
        progress = ProgressDialog.show(SearchActivity.this, 
                "Loading data", "Please wait...");
        super.onPreExecute();
    }

    @Override
    protected String doInBackground(String... params) {
        DatasetReader reader = new DatasetReader();
        reader.setFundID(params[0]);
        reader.addDatsets(FundProfile.datasets);
        reader.populate();
        return reader.toString();
    }

    @Override
    protected void onPostExecute(String result) {
        super.onPostExecute(result);
        progress.dismiss();
    } …
Run Code Online (Sandbox Code Playgroud)

android progressdialog android-asynctask

20
推荐指数
1
解决办法
5万
查看次数

带有ProgressDialog和Progress Bar的AsyncTask

我试图用来AsyncTask加载一个确定长度的文件.我AsyncTask看起来像这样:

protected void onPreExecute() {
    dialog = ProgressDialog.show(MyActivity.this, null, "Loading", false);
}


protected void onProgressUpdate(Integer... values) {
    if (values.length == 2) {
        dialog.setProgress(values[0]);
        dialog.setMax(values[1]);
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的doInBackground()实现中,我publishProgress(bytesSoFar, maxBytes);在我的加载循环和onPostExecute()我的调用中调用dialog.dismiss().

但是,ProgressDialog除了一个不确定的微调器之外,我无法展示任何东西.我想看到一个水平进度条,显示加载发生时的进度.我已经调试过,可以看到onProgressUpdate()用健全的值调用它,并且调用对话框的方法.

android progressdialog android-asynctask

20
推荐指数
2
解决办法
2万
查看次数

使用自定义ProgressDialog android

ProgressDialog在我的应用程序中使用自定义,我能够自定义,但我也想删除上边框或窗口progressDialog.在styles.xml我定义customDialog

<style name="AppTheme" parent="android:Theme.Light" />

<style name="CustomDialog" parent="@android:style/Theme.Dialog">
    <item name="android:background">#7BC047</item>
    <item name="android:textColor">#FFFFFF</item>
    <item name="android:windowBackground">@null</item>
     <item name="android:windowFrame">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud)

为了删除父窗口我设置windowBackground为null和windowFramenull但它不适合我.目前,我的自定义进度对话框在下面给出的图像中看起来像在此输入图像描述

我正在使用此代码来设置样式progressDialog.

 private void showProgressDialog() {
    progressDialog = new ProgressDialog(this,R.style.CustomDialog);
    progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    progressDialog.setMessage("Logging in. Please wait.");
    progressDialog.show();
}
Run Code Online (Sandbox Code Playgroud)

所以,帮助我解决这个问题应该非常感谢任何帮助.

android progressdialog

18
推荐指数
3
解决办法
6万
查看次数

如何使用ProgressDialog显示处理方向更改?

ProgressDialogonPreExecuteAsyncTask对象的方法中显示a 并取消onPostExecute方法中的ProgressDialog .在doInBackground方法中,我正在为用户注册发出HTTP请求.我希望允许更改屏幕方向.当我在doInBackground方法仍在运行时更改方向时,我会收到各种有趣的错误,例如'IllegalArgumentException:View not attached to window manager'和'RegisterScreen has leaked window ...'

如何ProgressDialog在方向改变后正确地继续显示?或者,在用户请求提交注册后,如何禁用方向更改?

android progressdialog orientation

17
推荐指数
2
解决办法
9502
查看次数

Android AsynTask取消进度对话框

在我的Android应用程序中,我使用AsynTask with Progress Dialog(请等待登录...)用于使用我的网页登录用户(AsynTask内的Web服务功能)

我想在用户点击设备上的后退按钮时解除进度对话框并取消AsynTask.

我无法找到那种中断AsynTask的例子.我读了abouth cancel(boolean)但我不知道如何从UI调用.

任何人都可以给我一些想法

谢谢

android progressdialog android-asynctask

17
推荐指数
3
解决办法
2万
查看次数

调用AsyncTask.get()时未显示ProgressDialog

可能重复:
AsyncTask阻止UI威胁并显示延迟的进度条

我想在从任何服务器检索JSON时显示progressDialog.所以我使用AsyncTask作为解决方案(不确定任何不同的出路).

一切都很好,ProgressDialog正常工作,直到我使用AsyncTask实例调用.get()方法.我想它会以某种方式阻止UI.这是我的AsyncTask:

public class myAsync extends AsyncTask<String, String, List> {

    String message; // for dialog message
    ProgressDialog progress; 
    Intent myIntent;
    Context ctx;

    public myAsync(String message, Context ctx) {
        this.message = message;
        this.ctx = ctx;
        progress = new ProgressDialog(ctx);
    }

    @Override
    protected void onPreExecute() { 
        progress.setMessage(message);
        progress.setIndeterminate(true);
        progress.setCancelable(false);
        progress.show();    
    }

    @Override
    protected List doInBackground(String... params) {
        //returns any list after the task
        return anyList; 
    }

    @Override
    protected void onPostExecute(List result) {
        if(progress.isShowing())
            progress.dismiss();
    }
}
Run Code Online (Sandbox Code Playgroud)

这里是调用AsyncTask的myActivity:

myAsync asyncTask = …
Run Code Online (Sandbox Code Playgroud)

android progressdialog android-asynctask

17
推荐指数
2
解决办法
2万
查看次数

非阻塞模态Swing进度对话框

一个愚蠢的问题,但我真的无法让它工作:我在Swing应用程序中有一些长时间运行的过程可能需要几分钟.我希望在此过程正在进行时向用户显示进度对话框.我还想阻止用户执行进一步的操作,例如在进行过程中按下按钮.

如果我在EDT上执行此过程,这显然会阻止最终用户在进程中执行任何操作.但是因为EDT正在忙于处理,所以它永远无法渲染对话框的内容,因此我只是得到了对话框的轮廓.

但是如果我在工作线程中执行该过程,最终用户可以单击按钮并使EDT操纵工作者同时也在操作的状态,结果是坏事.如果我创建对话框模态,那不会发生,但Swing中的模态也意味着阻塞,所以在我调用的那一刻setVisible(true),线程永远阻塞.

所以我当前的"解决方案"是使用一个工作线程,然后产生一个单独的线程,其唯一目的是吸收阻塞性质setVisible.肯定有一个更好的解决方案!

那么我如何得到一个对话框,阻止用户与系统的其余部分(模态)交互,但不阻止导致它可见的线程?

swing modal-dialog nonblocking progressdialog

16
推荐指数
1
解决办法
5099
查看次数

触摸屏幕时关闭进度对话框

ProgressDialog在线程中使用了a .在onButtonClick线程启动时,但当我触摸屏幕上的任何地方时,它ProgressDialog都会关闭.

我怎么能阻止这个?

private void ButtonClick(View view) {

    btn1 = (Button) view.findViewById(R.id.btn1);
    btn1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            GetStudentData();
        }
    });
}

private synchronized void GetStudentData() {  
    try {
        // Thread to display loader
        new Thread() {
            @Override
            public void run() {
                Looper.prepare();
                dialog = Msg.ShowProgressDialogBox(
                    getActivity(),
                    dialog,
                    "Please wait while we fetch the student data...");
                Looper.loop();
            }
        }.start();

        new Thread() {
            @Override
            public void run() {
                String studentData="Kailas";
            }   
        }
    } …
Run Code Online (Sandbox Code Playgroud)

android progressdialog android-progressbar

16
推荐指数
2
解决办法
3万
查看次数