安卓=--確認

來源:互聯網
上載者:User

標籤:

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

安卓=--確認

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.