在某些情況下需要向使用者彈出提示訊息,如顯示錯誤資訊,收到短訊息等,Android提供兩種彈出訊息的方式,訊息提示框toasts和對話方塊alerts。
Toast是一種短暫的訊息提示,顯示一段時間後不需要使用者互動會自動消失,所以用來顯示一些建議性的不太重要的訊息,如提示使用者後台一個任務完成了。
使用Toast來彈出提示訊息也很簡單,調用Toast類的靜態方法makeText():
public static Toast makeText (Context context, CharSequence text, int duration)
context: 調用的上下文,通常為Application或Activity對象
text: 顯示的訊息
duration: 顯示的時間長短,為 Toast.LENGTH_LONG或Toast.LENGTH_SHORT
如可以這樣調用:Toast.makeText(this, "Deleted Successfully!", Toast.LENGTH_LONG).show(); 效果如下:
AlertDialog類似於傳統的強制回應對話方塊,需要與使用者互動後才會關閉。
最簡單的建立AlertDialog對話方塊的方法是使用AlertDialog的嵌套類Builder,它有下面幾個主要的方法:
setMessage(): 設定顯示的訊息內容
setTitle() 和setIcon(): 設定對話方塊的標題列的文字和表徵圖
setPositiveButton(), setNeutralButton()和setNegativeButton(): 設定對話方塊的按鈕,包括按鈕顯示的文字,按鈕點擊的事件
setView(): 設定對話方塊顯示一個自訂的視圖
自訂視圖addemployee.xml代碼如下, 需要注意的是布局檔案的名稱只能包含“a-z0-9_.”,不然就會報這樣的錯誤:“Invalid file name: must contain only [a-z0-9_.]”
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent" android:layout_height="fill_parent"android:orientation="vertical"><LinearLayout android:layout_width="fill_parent"android:layout_height="wrap_content" android:orientation="horizontal"><TextView android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="Name:" /><EditText android:layout_width="fill_parent"android:layout_height="wrap_content" android:id="@+id/editName"></EditText></LinearLayout><LinearLayout android:layout_width="fill_parent"android:layout_height="wrap_content" android:orientation="horizontal"><TextView android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="Age:"></TextView><EditText android:layout_width="fill_parent"android:layout_height="wrap_content" android:id="@+id/editAge" android:inputType="number"></EditText></LinearLayout></LinearLayout>
產生對話方塊的代碼如下所示:
LayoutInflater layoutInflater = LayoutInflater.from(this); viewAddEmployee = layoutInflater.inflate(R.layout.addemployee, null); new AlertDialog.Builder(this).setTitle("Add Employee").setView(viewAddEmployee).setPositiveButton("OK",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {insertEmployee();}}).setNegativeButton("Cancel",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}}).show();
這裡先載入了一個自訂的視圖, 並通過setView()設定對話方塊顯示這個自訂視圖, 並添加了兩個按鈕和相應的點擊事件, 運行效果如下:
希望本文對您有所協助。
參考書籍:Beginning Android 2 和Android官方文檔