`

Android基础-----Progress Dialog

 
阅读更多
ProgressDialog 是Android中很常用的处理后台线程显示前台界面的工具
package com.testprogressdialog;

import java.io.File;
import java.net.URLEncoder;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class TestProgressDialog extends Activity {
	private ProgressDialog dialog;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        dialog = new ProgressDialog(this);
		dialog.setMessage("运行中...");
		dialog.setIndeterminate(false);
		dialog.setCancelable(true);
		Button bt1=(Button)findViewById(R.id.button1);
		bt1.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				
				dialog.show();
				Thread thread = new Thread(new ThreadDemo());
				thread.start();	
				
			}
		});
    }
	    
	       final Handler handle = new Handler()
	    	{
	    		@Override
	    		public void handleMessage(Message msg) 
	    		{	
	    			if(dialog!=null)
	    			{
	    				dialog.dismiss();
	    			}
	    			if( msg.what>0 )
	    			{
	    				Toast.makeText(TestProgressDialog.this, "线程成功结束", Toast.LENGTH_SHORT).show();
	    			}
	    			else
	    			{
	    				Toast.makeText(TestProgressDialog.this, "线程出现意外", Toast.LENGTH_SHORT).show();
	    			}
	    		}   
	    	};
	    	
	        Handler endSessionHandle = new Handler()
	    	{
	    		@Override
	    		public void handleMessage(Message msg) 
	    		{	
	    			finish();
	    		}   
	    	};
	    	  class ThreadDemo implements Runnable
	          {	
	      		public void run() 
	      		{ 
	      			int what = -1;
	      			 try 
	                  {
	                  	for (int i=0;i<10;i++)
	                  {
	                  	
	                  	Thread.sleep(1000);
	                  	if (i==9)
	                  	{what=1;
	                  	}
	                  }
	               } 
	                  catch (Exception e) 
	                  {
	                  	e.printStackTrace();
	                  	Log.e("WeiboPub", e.getMessage());
	      			}	
	      			handle.sendEmptyMessage(what);
	      		}
	      	
	      }
 }
    	
      


另一种 :通过异步实现:

其实都是和线程操作有关的东西

thread的run()残缺返回值于是+handler组合就可以做出时候用户体验的界面+线程运作了

 

而asyn直接实现就可以了

 

class InitTask extends AsyncTask<Integer, Integer, String>{  

   //后面尖括号内分别是参数(例子里是线程休息时间),进度(publishProgress用到),返回值 类型  

     

   @Override  

   protected void onPreExecute() {  

       //第一个执行方法  

   pdialog.show();

       super.onPreExecute();  

   }  

     

   @Override  

   protected String doInBackground(Integer... params) {  

       //第二个执行方法,onPreExecute()执行完后执行  

       initoken();

       return "初始化完毕,请继续操作!";  

   }  

 

   @Override  

   protected void onProgressUpdate(Integer... progress) {  

       //这个函数在doInBackground调用publishProgress时触发,虽然调用时只有一个参数  

       //但是这里取到的是一个数组,所以要用progesss[0]来取值  

       //第n个参数就用progress[n]来取值  

   

// if (progress[0] == 100)setTitle(R.string.app_name);

 

 

       super.onProgressUpdate(progress);  

   }  

 

   @Override  

   protected void onPostExecute(String result) {  

       //doInBackground返回时触发,换句话说,就是doInBackground执行完后触发  

       //这里的result就是上面doInBackground执行后的返回值,所以这里是"执行完毕"  

    pdialog.dismiss();

    setTitle(result); 

        super.onPostExecute(result);  

   }  

     

}  

 

这个的功能就是在线程运行时候显示progressdialog,线程结束dialog消失


分享到:
评论

相关推荐

    Android应用源码之android-styled-dialogs 可自定义样式的dialog-IT计算机-毕业设计.zip

    系统提供了几种内置的Dialog样式,如Alert Dialog、Progress Dialog和Date/Time Picker Dialog等。然而,这些默认样式可能无法满足所有设计需求,因此自定义Dialog样式变得尤为重要。 `android-styled-dialogs`库...

    rx-progress-dialog-sample

    通过研究"rx-progress-dialog-sample"项目,开发者可以深入了解如何在Android应用中有效地结合使用RxJava和ProgressDialog,提升用户体验,同时遵循最佳的编程实践。对于那些想要提升Android异步编程技能的人来说,...

    android-styled-dialogs 可自定义样式的dialog.rar

    默认情况下,Android提供了几种预定义的Dialog样式,包括Alert Dialog、Progress Dialog和DatePicker/TimePicker Dialog等。Alert Dialog通常用于显示简单的信息或请求用户确认,而Progress Dialog则用于表示后台...

    Android自定义loading Dialog

    在Android开发中,自定义组件是一项常见的需求,特别是在创建用户界面时,为了提供更好的用户体验,开发者经常需要定制一些特殊的对话框(Dialog)。本教程将详细讲解如何实现一个自定义的加载对话框(Loading ...

    Android代码-ProgressDialog

    在Android开发中,ProgressDialog是一个非常常见的组件,它用于在应用程序执行耗时操作(如网络请求、数据加载等)时向用户展示进度,提供一个等待反馈的界面,避免用户感到应用卡顿或无响应。ProgressDialog通常...

    Android(Dialog).zip_android_android Dialog

    在Android开发中,Dialog是一个非常重要的组件,它用于在用户界面中显示临时的、轻量级的窗口,通常用于向用户展示信息或者请求用户的输入。本篇内容将深入探讨Android中的Dialog及其各种类型,帮助开发者更好地理解...

    Android课件(4Dialog).zip

    - 对于长时间运行的操作,考虑使用Progress Bar而不是ProgressDialog,因为后者在Android O及以上版本已废弃。 - 在适当的时候使用Dialog,例如,当用户需要确认一个操作或获取更多信息时。 7. **使用资源文件** ...

    自定义Dialog中播放视频

    在Android开发中,有时我们需要创建个性化的用户交互体验,例如在一个自定义的Dialog中播放视频。这个场景下,我们可以利用SurfaceView来实现视频播放,并且赋予它一些基本的控制功能,比如播放、暂停、显示进度条...

    android dialog进度对话框

    setContentView(R.layout.dialog_progress); // 加载GIF资源 ImageView gifView = findViewById(R.id.gif_view); Glide.with(context) .asGif() .load(R.raw.your_gif_resource) // 替换为你的GIF资源 .into...

    安卓开发-DialogShow.zip

    在Android开发中,Dialog是应用中非常常见的一种组件,它用于在用户界面的主窗口之上显示一个临时的视图,通常用于提供警告、确认信息或者简单的用户交互。本压缩包"安卓开发-DialogShow.zip"可能包含了一系列关于...

    Android代码-进度条源码.zip

    10. **Progress Dialog**: 对于需要用户等待的场景,可以使用`ProgressDialog`,它是一个模态对话框,内含一个进度条,不过在新版本的Android中已被弃用,推荐使用`AlertDialog`配合自定义视图实现类似功能。 ...

    自定义Dialog 正在加载中....

    在Android开发中,Dialog是一种常见的用户界面元素,用于在主应用程序界面之上显示临时信息或进行交互操作。"自定义Dialog 正在加载中...."这个标题暗示我们将讨论如何创建一个自定义的Dialog,特别是在Android应用...

    安卓自定义Dialog带有进度条的效果的ProgressDialog

    在Android开发中,Dialog是一种非常常见的用户界面组件,它用于在主界面之上显示临时的通知或交互窗口。ProgressDialog是Dialog的一种特殊形式,它显示一个进度条,通常用于指示后台任务的执行进度,比如文件下载、...

    Android 自定义Dialog,文字动态加载效果

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的UI风格和功能需求创建独特的对话框。本文将详细讲解如何通过继承AlertDialog来实现一个具有“加载中...”动态效果的自定义Dialog。 首先,...

    Android dialog 综合展示

    在Android开发中,对话框(Dialog)是一种非常重要的组件,用于与用户进行交互,提供临时信息、确认操作或展示选项。本篇文章将深入探讨Android Dialog的综合应用,包括各种类型的对话框及其用法。 首先,Android中...

    Android之实现带动画加载状态的Dialog

    android:id="@+id/progress_bar" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" /&gt; android:id="@+id/image_view" android:...

    Android Dialog大全源码

    首先,Dialog通常分为几种类型:Alert Dialog、Progress Dialog、DatePicker Dialog、TimePicker Dialog等。每种Dialog都有其特定的用途,比如AlertDialog用于展示警告信息或提供选择项,ProgressDialog则用于显示...

    android dialog ——ProgressDialog 进度条对话框详解

    public void onProgressChanged(ProgressDialog dialog, int progress, boolean fromUser) { // 在这里处理进度变化 } }); ``` 五、自定义ProgressDialog 尽管ProgressDialog提供了基本的样式,但有时我们可能...

    android 自定义dialog

    Android系统提供了多种内置的Dialog样式,如Alert Dialog、Progress Dialog等,它们可以直接通过`AlertDialog.Builder`或`ProgressDialog`类创建。然而,这些默认样式可能无法满足所有设计需求,因此需要自定义。 ...

Global site tag (gtag.js) - Google Analytics