ProgressDialog 独立组件

ProgressDialog

 

[功能]

鉴于很多人对ProgressDialog 的使用不是太熟悉 导致在此浪费了太多时间 而不喜欢使用 更加剧了这个问题

 

所以决定写这篇:ProgressHelper 包含了 创建 显示 并关闭 ProgressDialog

 

 

[代码 步骤]

1. 创建 ProgressHelper  的构造函数 并传入ProgressDialog 所需的 标题 正文

 

String title, text;
	
	Context context;
	
	ProgressDialog pd;
	
	public ProgressHelper(Context c,String t,String te){
		context = c;
		
		title = t;
		text = te;
		
		pd = new ProgressDialog(c);
	}

 

 

2. 利用上述变量 创建ProgressDialog  并显示之 利用上述变量

public void start(){
		pd = ProgressDialog.show(context, "loop from 100 to 0!", "is looping...", true,
    			false);
	}

 

 

3. 关闭 ProgressDialog 

public void end(){
		pd.dismiss();
	}

 

 

 

4. 如何使用

public class ProgressHelperUsage extends Activity {
	public final static int TASK_LOOP_COMPLETE = 0;
	
	ProgressHelper ph;
	
	/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        ph = new ProgressHelper(this, "loop from 100 to 0", "is looping...");
        
        
        findViewById(R.id.button).setOnClickListener(new OnClickListener(){
			public void onClick(View v) {
				// TODO Auto-generated method stub
		        ph.start();
		        Thread loop = new Thread(new TaskLoop());
		    	loop.start();
			}
        });
        
        
    }
    
    
    public class TaskLoop implements Runnable {
		@Override
		public void run() {
			// TODO Auto-generated method stub
			loop(5000);
			
			message.sendEmptyMessage(TASK_LOOP_COMPLETE);
		}
    	
    }
    
    public void loop(long i){
    	long j = i;
    	while(j>0){
    		Log.d("tag",j+"");
    		
    		j = j-1;
		}

    }
    private Handler message = new Handler(){
    	public void handleMessage(Message msg) {
			switch(msg.arg1){
			case TASK_LOOP_COMPLETE:
				ph.end();
				break;
				
			}
		}
    };
}

 

 

 

5. emulator 运行截图:

 ProgressDialog 独立组件

 

done!

 

 

你可能感兴趣的:(thread,C++,c,C#,J#)