安卓-进度处理对话框(ProgressDialog)

main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" 
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<Button
	    android:id="@+id/btn"
	    android:layout_height="wrap_content"
	    android:layout_width="wrap_content"
	    android:text="查找网络连接"/>	    
	
</LinearLayout>


.java代码如下:

package org.lxh.demo;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;

public class Hello extends Activity {
	private Button btn = null;
	private static final int MAX_PROGRESS=100;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState); // 生命周期方法
		super.setContentView(R.layout.main); // 设置要使用的布局管理器
		this.btn = (Button) super.findViewById(R.id.btn);
		this.btn.setOnClickListener(new OnClickListenerImpl());
	}

	private class OnClickListenerImpl implements OnClickListener {

		public void onClick(View v) {
			final ProgressDialog proDialog=new ProgressDialog(Hello.this);
			proDialog.setTitle("搜索网络");
			proDialog.setMessage("请耐心等待...");
			proDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
			proDialog.setMax(MAX_PROGRESS);
			proDialog.setProgress(30);
			proDialog.setButton("后台处理", new DialogInterface.OnClickListener() {
				
				public void onClick(DialogInterface arg0, int arg1) {
					proDialog.dismiss();
					
				}
			});
			proDialog.onStart();
			new Thread(){
				public void run(){
					for(int x=0;x<MAX_PROGRESS;x++){
					try {
						Thread.sleep(500);
					} catch (InterruptedException e) {
						
						e.printStackTrace();
					}
					proDialog.incrementProgressBy(1);
				}
					proDialog.dismiss();
			}}.start();
			proDialog.show();
		}

	}

}


效果运行如下:

技术分享


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。