Android:进度对话框在加载时更改ProgressDialog.setMessage()

Android:进度对话框在加载时更改ProgressDialog.setMessage(),第1张

概述我希望有人能帮助我找出如何在进度对话框更改setmessage对话框的方法,而只是使用一个虚拟计时器,该计时器可以通过字符串数组或任何其他方式循环显示.例如,在加载过程中,可以说“正在加载…->建筑…->呈现…->等等.像一个1/2秒的计时器一样(这对我来说就是玩这个,一旦我弄清楚如

我希望有人能帮助我找出如何在进度对话框中更改setmessage对话框的方法,而只是使用一个虚拟计时器,该计时器可以通过字符串数组或任何其他方式循环显示.例如,在加载过程中,可以说“正在加载…->建筑…->呈现…->等等.像一个1/2秒的计时器一样(这对我来说就是玩这个,一旦我弄清楚如何更改对话框,我就可以使用实时更新来适应它.)我一直在使用this tutorial作为进度线程减去方向码.有任何想法吗?

谢谢!

它不是很漂亮,但是我可以使它与此一起工作:

public class BadBaconJoke extends Activity implements OnClickListener {    ProgressDialog dialog;    int increment;    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.progressdialog);        button startbtn = (button) findVIEwByID(R.ID.startbtn);        startbtn.setonClickListener(this);    }    public voID onClick(VIEw vIEw) {         // get the increment value from the text Box        EditText et = (EditText) findVIEwByID(R.ID.increment);        // convert the text value to a integer        increment = Integer.parseInt(et.getText().toString());        dialog = new ProgressDialog(this);        dialog.setCancelable(true);        dialog.setTitle("Loading...");        dialog.setMessage("Almsot done!");        // set the progress to be horizontal        dialog.setProgressstyle(ProgressDialog.STYLE_HORIZONTAL);        // reset the bar to the default value of 0        dialog.setProgress(0);        // get the maximum value        EditText max = (EditText) findVIEwByID(R.ID.maximum);        // convert the text value to a integer        final int maximum = Integer.parseInt(max.getText().toString());        // set the maximum value        dialog.setMax(maximum);        // display the progressbar        dialog.show();        // create a thread for updating the progress bar        Thread background = new Thread (new Runnable() {           public voID run() {               try {                   // enter the code to be run while displaying the progressbar.                   //                   // This example is just going to increment the progress bar:                   // So keep running until the progress value reaches maximum value                   while (dialog.getProgress()<= dialog.getMax()) {                       // wait 500ms between each update                       Thread.sleep(500);                       // active the update handler                       progressHandler.sendMessage(progressHandler.obtainMessage());                   }               } catch (java.lang.InterruptedException e) {                   // if something fails do something smart               }           }        });        // start the background thread        background.start();    }    // handler for the background updating    Handler progressHandler = new Handler() {        public voID handleMessage(Message msg) {            dialog.incrementProgressBy(increment);            int x;            x = dialog.getProgress();            switch (x) {            case 10:  dialog.setMessage("Gathering Data");      break;            case 20:  dialog.setMessage("Parsing Results");      break;            case 30:  dialog.setMessage("Builindg Data");        break;            case 40:  dialog.setMessage("@R_502_6704@Forming");       break;            case 50:  dialog.setMessage("Contacting Server");  break;            case 60:  dialog.setMessage("Ping Back");  break;            case 70:  dialog.setMessage("Processing");  break;            case 80:  dialog.setMessage("Communicating with Device");  break;            case 90:  dialog.setMessage("Populating");  break;            case 100:  dialog.setMessage("displaying Data:");  break;            default: dialog.setMessage("..."); break;        }         if (x == 100){             new AlertDialog.Builder(BadBaconJoke.this);            dialog.setTitle("Complete");            //.setMessage("Are you sure you want to exit?")           // dialog.setbutton(androID.R.string.no, null);            //.setMessage("Are you sure you want to exit?")         }        }    };}

有什么想法可以使它与微调器和过程对话框配合使用吗?当我更改dialog.setProgressstyle(ProgressDialog.STYLE_HORIZONTAL);到dialog.setProgressstyle(ProgressDialog.STYLE_SPINNER);

它仅显示开关盒的默认设置.

解决方法:

您可以使用onProgressUpdated()来更改消息,因为此方法在UI线程上运行.但是,它不会给您机会在特定的时间内更改消息.

总结

以上是内存溢出为你收集整理的Android:进度对话框在加载时更改ProgressDialog.setMessage()全部内容,希望文章能够帮你解决Android:进度对话框在加载时更改ProgressDialog.setMessage()所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1070823.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存