Android 에서 ProgressDialog 의 간단 한 예제
5997 단어 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
}
};
}