標籤:
AlertDialog
AlertDialog可以在當前的介面彈出一個對話方塊,這個對話方塊是置頂於所有介面元素之上的,能夠屏蔽掉其他控制項的互動能力,因此一般AlertDialog都是用於提示一些非常重要的內容或者警告資訊。比如為了防止使用者誤刪重要內容,在刪除前彈出一個確認對話方塊。下面我們來學習一下它的用法,修改MainActivity中的代碼,如下所示:
public class MainActivity extends Activity implements OnClickListener {
……
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
AlertDialog.Builder dialog = new AlertDialog.Builder (MainActivity.this);
dialog.setTitle("This is Dialog");
dialog.setMessage("Something important.");
dialog.setCancelable(false);
dialog.setPositiveButton("OK", new DialogInterface. OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.setNegativeButton("Cancel", new DialogInterface. OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.show();
break;
default:
break;
}
}
}
首先通過AlertDialog.Builder建立出一個AlertDialog的執行個體,然後可以為這個對話方塊設定標題、內容、可否取消等屬性,接下來調用setPositiveButton()方法為對話方塊設定確定按鈕的點擊事件,調用setNegativeButton()方法設定取消按鈕的點擊事件,最後調用show()方法將對話方塊顯示出來。重新運行程式,點擊按鈕後,效果3.13所示。
圖 3.13
3.2.7 ProgressDialog
ProgressDialog和AlertDialog有點類似,都可以在介面上彈出一個對話方塊,都能夠屏蔽掉其他控制項的互動能力。不同的是,ProgressDialog會在對話方塊中顯示一個進度條,一般是用於表示當前操作比較耗時,讓使用者耐心地等待。它的用法和AlertDialog也比較相似,修改MainActivity中的代碼,如下所示:
public class MainActivity extends Activity implements OnClickListener {
……
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
ProgressDialog progressDialog = new ProgressDialog (MainActivity.this);
progressDialog.setTitle("This is ProgressDialog");
progressDialog.setMessage("Loading...");
progressDialog.setCancelable(true);
progressDialog.show();
break;
default:
break;
}
}
}
可以看到,這裡也是先構建出一個ProgressDialog對象,然後同樣可以設定標題、內容、可否取消等屬性,最後也是通過調用show()方法將ProgressDialog顯示出來。重新運行程式,點擊按鈕後,效果3.14所示。
注意如果在setCancelable()中傳入了false,表示ProgressDialog是不能通過Back鍵取消掉的,這時你就一定要在代碼中做好控制,當資料載入完成後必須要調用ProgressDialog的dismiss()方法來關閉對話方塊,否則ProgressDialog將會一直存在。
圖 3.14
安卓=--確認