Android提供兩個常用的消息彈出框,Toast和Alert。
Toast
Toast是一種短暫的提示框,並不需要用戶交互,也不會將focus移過來,因此可以適合大多數的場景,向用戶進行信息提示。在之前的學習中,已經多次使用到Toast了。
創建一個Toast很簡單,使用靜態方法makeText(Context context, CharSequence text | int resId, int duration),將String(或者String的ID),以及顯示的時間長短(LENGTH_SHORT或者LENGTH_LONG)就可以得到一個Toast的對象。
上面是最常用的方式,但是如果要顯示成其他的view,而不僅僅是text,可以使用Toast的構造函數Toast(Context context),然後使用setView()設置所顯示的view,通過setDuration()設置顯示時間即可。
如果我們需要顯示Toast,只要調用show()的方法即可。例如:
private void insertEmployee(){
//調用顯示Toast對話框
};
Alert
傳統的方式,是dialog box的形式,需采用AlertDialog,當一個警告框彈出之後,將獲得focus,必須由用戶來關閉它,用於顯示重要的錯誤或者事件,必須確保用戶知曉的場景或者一些驗證的信息。
最容易的警告框通過AlertDialog.Builder類來創建,可以依次調用setMessage()設置顯示文本內容,setTitle(),setIcon(),以及設置下面的按鈕setPositiveButton(),setNeutralButton(),setNegativeButton(), 這幾個button具體和名字沒有什麼關聯,只是表明依次的位置隨左中右,並且最多顯示三個按鍵,我們需要設置這些按鍵的顯示內容和點擊觸發的處理。最後調用show()方法,將其顯示。
如果我們需要先創建builder對象,然後進行配置,最後再顯示,可以先使用create(),然後設置上述內容,最後調用show()。一旦show()調用,則一直等等用戶的處理。
下面是一個警告框的顯示例子,我們對告警框的內容依次設置:
private void AlertDialog()
{
//Alert Dialog
new AlertDialog.Builder(TestMsg.this)
.setTitle("Alerting Message")
.setMessage("Ha Ha!")
.setNegativeButton("Close", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//do nothing - it will close on its own
}
})
.show();
};