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