Android 에서 ProgressDialog 의 간단 한 예제

5997 단어 ProgressDialog
Android 에서 ProgressDialog 사용:
http://skycode.iteye.com/blog/346960
Android 에서 ProgressDialog 의 간단 한 예제:
http://lveyo.iteye.com/blog/585771
Android ProgressDialog 의 두 가지 용법:
http://www.pocketdigi.com/20110510/271.html
안 드 로 이 드 에 서 는 보통 단독 스 레 드 에서 UI 를 업데이트 할 수 없습니다.메 인 스 레 드 에 서 는 Handler 를 사용 해 야 하 는 이유 입 니 다.handler 가 메 시 지 를 받 으 면 대기 열 에 넣 어 실행 을 기다 리 는 이유 입 니 다.일반적으로 이것 은 곧 실 행 됩 니 다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textview1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ShowProgressDialog" />

</LinearLayout>
package com.progress.dialog;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class ProgressDialogActivity extends Activity {
    /** Called when the activity is first created. */
	private Button button1;
	private TextView textview1;
	private ProgressDialog progressDialog;
	
	private Handler handler = new Handler(){
    	@Override
    	public void handleMessage(android.os.Message msg) {
    		try {
    			if (progressDialog != null) {
					progressDialog.dismiss();
				}
    			textview1.setText("     .");
    			
			} catch (Exception e) {
				// TODO: handle exception
				Log.v("ProgressDialogActivity", e.getMessage());
			}
    		
    	};
    };
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        button1 = (Button) findViewById(R.id.button1);
        textview1 = (TextView)findViewById(R.id.textview1);
        
        button1.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				//        progressDialog
				progressDialog = ProgressDialog.show(ProgressDialogActivity.this, "    ", "[3    ]Load......", true, false);
				textview1.setText("     .");
				//       
				new Thread(new Runnable(){
					@Override
					public void run() {
						try {
							Thread.sleep(3000);
							handler.sendEmptyMessage(0);
							
						} catch (Exception e) {
							e.printStackTrace();
						}
						
					}
				}).start();
				
			}
		});
    }
    
}

Progressdialog 는 말 그대로 진도 대화 상자 로 불 러 오 는 진도,다운로드 진도 등 을 표시 하 는 데 자주 사용 된다.Progressdialog 를 합 리 적 으로 사용 하면 사용자 체험 을 증가 시 켜 현재 프로그램 이 처 한 상 태 를 알 수 있 습 니 다.
다음은 두 가지 용법 입 니 다.첫 번 째 는 복잡 한 환경 에 적합 하고 스타일 을 정의 할 수 있 으 며 버튼 을 추가 할 수 있 습 니 다.두 번 째 는 제목 과 정보 만 있 는 ProgressDialog 만 간단하게 표시 할 수 있 습 니 다.
package com.pocketdigi.ProgressDialog;
 
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
public class Main extends Activity {
	/** Called when the activity is first created. */
	ProgressDialog pd1, pd2;
	Button b1, b2;
 
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		b1 = (Button) findViewById(R.id.b1);
		b2 = (Button) findViewById(R.id.b2);
		b1.setOnClickListener(showPd1);
		b2.setOnClickListener(showPd2);
	}
	OnClickListener showPd1 = new OnClickListener() {
 
		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			pd1 = new ProgressDialog(Main.this);
			pd1.setTitle("PD1  ");
			pd1.setProgressStyle(ProgressDialog.STYLE_SPINNER);//     
			//       ProgressDialog.STYLE_HORIZONTAL,  setMax,setProgress,incrementProgressBy      
			pd1.setMessage("PD1  ");
			pd1.setButton("  ", new DialogInterface.OnClickListener() {
 
				@Override
				public void onClick(DialogInterface dialog, int which) {
					// TODO Auto-generated method stub
					pd1.dismiss();
				}
 
			});
			//    setButton2,setButton3       
			pd1.setCancelable(false);//           
			pd1.show();
		}
 
	};
	OnClickListener showPd2 = new OnClickListener() {
 
		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			pd2=ProgressDialog.show(Main.this,"PD2  ","PD2  ");
			//             ,       ProgressDialog
		}
 
	};
 
}

좋은 웹페이지 즐겨찾기