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()的方法即可。例如:
Toast.makeText(this,"<clink, clink>", Toast.LENGTH_SHORT).show();
Alert
傳統的方式,是dialog box的形式,需採用AlertDialog,當一個警告框彈出之後,將獲得focus,必須由使用者來關閉它,用於顯示重要的錯誤或者事件,必須確保使用者知曉的情境或者一些驗證的資訊。
最容易的警告框通過AlertDialog.Builder類來建立,可以依次調用setMessage()設定顯示常值內容,setTitle(),setIcon(),以及設定下面的按鈕setPositiveButton(),
setNeutralButton(),
setNegativeButton(), 這幾個button具體和名字沒有什麼關聯,只是表明依次的位置隨左中右,並且最多顯示三個按鍵,我們需要設定這些按鍵的顯示內容和點擊觸發的處理。最後調用show()方法,將其顯示。
如果我們需要先建立builder對象,然後進行配置,最後再顯示,可以先使用create(),然後設定上述內容,最後調用show()。一旦show()調用,則一直等等使用者的處理。
下面是一個警告框的顯樣本子,我們對警示框的內容依次設定:
new AlertDialog.Builder(this)
.setTitle("Alerting Message")
.setMessage("eek!")
.setNegativeButton("Close", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//do nothing - it will close on its own
}
})
.show();
在查看參考的時候,對於AlertDialog.Builder可以設定setItems(),以及setMultiChoiceItems()和setSingleChoiceItems(),下面是一個例子:
new AlertDialog.Builder(this)
.setTitle("Select one :")
.setSingleChoiceItems(R.array.colors, 1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//do nothing - it will close on its own
}
})
.show();
相關連結:我的Andriod開發相關文章