2012/05/12

[Android] 彈出對話視窗AlertDialog、ProgressDialog

不管是在application或是web等

常常會需要一個對話視窗讓使用者選擇,或是顯示在讀取中的提示視窗

在android同樣也有這樣的元件


在這邊先介紹ProgressDialog

ProgressDialog是一個無按鈕回饋的Dialog

主要目的是通知使用者需要等待載入或是一些訊息讓使用者知道程式還活著並沒有中斷

public class DialogActivity extends Activity {
private ProgressDialog loadingDialog;
public void onCreate(Bundle bundle) {
super.onCreate(bundle);

loadingDialog = ProgressDialog.show(
this,  //要顯示此Dialog的Activity
"我是標題", //標題
"我是內容訊息", //內容
false,  //未知 可選擇
false  //可否由返回鍵/空白處中斷 可選擇
);

setContentView(R.layout.dialogactivity);
}

@Override
protected void onDestroy() {
super.onDestroy();
loadingDialog.dismiss();  //關閉
}

}


以上範例在activity啟動時會出現一個提示視窗

不管你按什麼地方都不會關閉(因為show的第五個參數設為false)

直到你按Home鍵離開你的程式

當然可以將cancelable設為true,這樣就可以利用返回關閉此提示視窗

至於第四個參數我還沒試出來XD改天補上


接下來是AlertDialog

AlertDialog也很類似

不過他多了可選擇的按鈕

可以設定確定或取消時要接續執行什麼動作
(或更多種選擇)

宣告的方式不太一樣

public class DialogActivity extends Activity {
private Builder builder;
public void onCreate(Bundle bundle) {
super.onCreate(bundle);

builder = new AlertDialog.Builder(this);
builder.setTitle("我是標題");
builder.setMessage("我是訊息內容");
builder.setCancelable(false);
builder.setPositiveButton("確定", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
//按確定要作的事情
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
//按取消要作的事情
}
});
builder.create();
builder.show();

setContentView(R.layout.dialogactivity);
}

@Override
protected void onDestroy() {
super.onDestroy();
builder.dismiss();  //關閉
}

}


大致上是這樣

當然可以獨立一個method去產生這樣可以重複使用

在把ClickListenert傳入即可



refrence:
Cooking Java

沒有留言:

張貼留言