
我希望有人能帮助我找出如何在进度对话框中更改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()所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)