在應(yīng)用程序中有些時候,如果想詢問用戶采取決定是或否所采取的特殊動作的回應(yīng),由停在原來的活動而不改變屏幕,可以使用警告對話框(Alert Dialog)。
要使用一個警告對話框,需要一個AlertDialogBuilder對象使用它的內(nèi)部類AlertDialog。它的語法如下面給出:
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
現(xiàn)在使用AlertDialogBuilder類的對象,設(shè)置正(是)或負性(否)按鈕。它的語法如下:
alertDialogBuilder.setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener) alertDialogBuilder.setNegativeButton(CharSequence text, DialogInterface.OnClickListener listener)
除此之外,可以使用生成器類提供的其它功能自定義警告對話框。這些在下面列出:
| Sr.No | 方法類型及說明 |
|---|---|
| 1 |
setIcon(Drawable icon) 此方法設(shè)置警告對話框的圖標。 |
| 2 |
setCancelable(boolean cancelable) 此方法設(shè)置屬性,對話可以取消或不 |
| 3 |
setMessage(CharSequence message) 此方法設(shè)置要顯示的警告對話框中的消息 |
| 4 |
setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, DialogInterface.OnMultiChoiceClickListener listener) 顯示的對話框的內(nèi)容在此方法集的條目列表。所選擇的選項將被監(jiān)聽通知 |
| 5 |
setOnCancelListener(DialogInterface.OnCancelListener onCancelListener) 此方法設(shè)置將被調(diào)用,如果取消該對話框的回調(diào) |
| 6 |
setTitle(CharSequence title) 此方法設(shè)置顯示在對話框中的標題 |
創(chuàng)建和設(shè)置對話框構(gòu)建器之后,將通過調(diào)用生成器類的 create()方法創(chuàng)建一個警告對話框。它的語法如下:
AlertDialog alertDialog = alertDialogBuilder.create(); alertDialog.show();
這將創(chuàng)建警告對話框,并會顯示在屏幕上。
下面的例子演示如何使用Android AlertDialog。它采用了三種不同的活動演示它。該對話框詢問跳轉(zhuǎn)到正的活動,或取消跳到負的活動。
為了試驗這個例子,需要在模擬器或?qū)嶋H設(shè)備上運行。
| 步驟 | 描述 |
|---|---|
| 1 | 使用Android Studio創(chuàng)建Android應(yīng)用程序,并將其命名為AlertDialog。創(chuàng)建這個項目時確保目標SDK編譯在Android SDK的最新版本或使用更高級別的API |
| 2 | 修改 src/MainActivity.java文件添加警告對話框代碼以啟動對話框 |
| 3 | 修改所需的布局res/layout/activity_main.xml添加GUI組件 |
| 4 | 創(chuàng)建一個名為PositiveActivity 的新活動,并通過訪問確認 src/PositiveActivity.java 文件代碼 |
| 5 | 修改新創(chuàng)建活動的 res/layout/activity_positive.xml XML布局文件,如果需要添加GUI組件 |
| 6 | 創(chuàng)建一個名為NegativeActivity 新的活動,并通過訪問確認 src/NegativeActivity.java 文件代碼 |
| 7 | 修改新創(chuàng)建活動的 res/layout/activity_negative.xml XML布局文件,如果需要添加GUI組件 |
| 8 | 修改res/values/strings.xml 定義所需的常量值 |
| 9 | 運行應(yīng)用程序并選擇運行 Android 設(shè)備,并在其上安裝應(yīng)用和驗證結(jié)果 |
這里是修改后的代碼 src/com.yiibai.alertdialog/MainActivity.java
package com.example.alertdialog; import com.example.alertdialog.*; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.view.Menu; import android.view.View; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void open(View view){ AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); alertDialogBuilder.setMessage(R.string.decision); alertDialogBuilder.setPositiveButton(R.string.positive_button, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { Intent positveActivity = new Intent(getApplicationContext(),com.example.alertdialog.PositiveActivity.class); startActivity(positveActivity); } }); alertDialogBuilder.setNegativeButton(R.string.negative_button, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent上一篇:Android數(shù)據(jù)備份下一篇:Android TableLayout