Android開發教學
Android 開發環境配置
Android 架構
Android 應用組件
Android Hello World示例
Android 資源組織和訪問
Android Activity
Android Service
Android廣播接收器
Android內容提供者
Android碎片/片段
Android Intent過濾器
Android UI佈局
Android LinearLayout
Android RelativeLayout
Android TableLayout
Android AbsoluteLayout
Android FrameLayout
Android ListView
Android GridView
Android UI控件
Android TextView
Android EditText
Android AutoCompleteTextView
Android Button
Android ImageButton
Android CheckBox
Android ToggleButton
Android RadioButton
Android RadioGroup
Android事件處理
Android樣式和主題
Android樣式示例
Android主題示例
Android自定義組件
Android拖放
Android通知
Android基於位置服務
Android發送電子郵件
Android發送短信/SMS
Android撥打電話
發佈Android應用
ArrayAdapter
SimpleCursorAdapter
Android ProgressDialog
Android Spinner
使用活動代碼自定義Android組件
使用佈局文件自定義Android組件
Android自定義組件及屬性
Android Alertdialog(警告對話框)
Android Animation(動畫)實例
Android音頻捕獲(錄音)
Android音頻管理器實例
Android AutoCompleteTextView(自動完成)實例
Android最佳實踐
Android Bluetooth(藍牙)實例
Android Camera(攝像頭)
Android Clipboard(複製/剪貼板)
Android自定義字體
Android數據備份
Android Gestures/手勢
Android圖片效果
Android圖片切換
Android內部存儲
Android JetPlayer實例
Android JSON解析器
Android加載Spinner
Android本地化
Android登錄實例
Android MediaPlayer(多媒體播放)

Android Alertdialog(警告對話框)

在應用程序中有些時候,如果想詢問用戶採取決定是或否所採取的特殊動作的迴應,由停在原來的活動而不改變屏幕,可以使用警告對話框(Alert Dialog)。

要使用一個警告對話框,需要一個AlertDialogBuilder對象使用它的內部類AlertDialog。它的語法如下面給出:

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);

現在使用AlertDialogBuilder類的對象,設置正(是)或負性(否)按鈕。它的語法如下:

alertDialogBuilder.setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener) alertDialogBuilder.setNegativeButton(CharSequence text, DialogInterface.OnClickListener listener)

除此之外,可以使用生成器類提供的其它功能自定義警告對話框。這些在下面列出:

Sr.No

方法類型及說明

1

setIcon(Drawable icon)
此方法設置警告對話框的圖標。

2

setCancelable(boolean cancelable)
此方法設置屬性,對話可以取消或不

3

setMessage(CharSequence message)
此方法設置要顯示的警告對話框中的消息

4

setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, DialogInterface.OnMultiChoiceClickListener listener)
顯示的對話框的內容在此方法集的條目列表。所選擇的選項將被監聽通知

5

setOnCancelListener(DialogInterface.OnCancelListener onCancelListener)
此方法設置將被調用,如果取消該對話框的回調

6

setTitle(CharSequence title)
此方法設置顯示在對話框中的標題

創建和設置對話框構建器之後,將通過調用生成器類的 create()方法創建一個警告對話框。它的語法如下:

AlertDialog alertDialog = alertDialogBuilder.create(); alertDialog.show();

這將創建警告對話框,並會顯示在屏幕上。

例子

下面的例子演示如何使用Android AlertDialog。它採用了三種不同的活動演示它。該對話框詢問跳轉到正的活動,或取消跳到負的活動。

爲了試驗這個例子,需要在模擬器或實際設備上運行。

步驟

描述

1

使用Android Studio創建Android應用程序,並將其命名爲AlertDialog。創建這個項目時確保目標SDK編譯在Android SDK的最新版本或使用更高級別的API

2

修改 src/MainActivity.java文件添加警告對話框代碼以啓動對話框

3

修改所需的佈局res/layout/activity_main.xml添加GUI組件

4

創建一個名爲PositiveActivity 的新活動,並通過訪問確認 src/PositiveActivity.java 文件代碼

5

修改新創建活動的 res/layout/activity_positive.xml XML佈局文件,如果需要添加GUI組件

6

創建一個名爲NegativeActivity 新的活動,並通過訪問確認 src/NegativeActivity.java 文件代碼

7

修改新創建活動的 res/layout/activity_negative.xml XML佈局文件,如果需要添加GUI組件

8

修改res/values/strings.xml 定義所需的常量值

9

運行應用程序並選擇運行 Android 設備,並在其上安裝應用和驗證結果

這裏是修改後的代碼 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 negativeActivity = new Intent(getApplicationContext(),com.example.alertdialog.NegativeActivity.class); startActivity(negativeActivity); } }); AlertDialog alertDialog = alertDialogBuilder.create(); alertDialog.show(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }

下面是默認代碼 src/com.yiibai.alertdialog/PositiveActivity.java

package com.example.alertdialog; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class PositiveActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_positive); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.positive, menu); return true; } }

下面是默認代碼 src/com.yiibai.alertdialog/NegativeActivity.java

package com.example.alertdialog; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class NegativeActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_negative); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.negative, menu); return true; } }

這裏是修改後的代碼 res/layout/activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="170dp" android:onClick="open" android:text="@string/hello_world" />

這裏是修改後的代碼 res/layout/activity_positive.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".PositiveActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="14dp" android:layout_marginTop="20dp" android:text="@string/positive" android:textAppearance="?android:attr/textAppearanceLarge" />

這裏是修改後的代碼res/layout/activity_negative.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".NegativeActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="14dp" android:layout_marginTop="17dp" android:text="@string/negative" android:textAppearance="?android:attr/textAppearanceLarge" />

這裏是修改後的代碼 Strings.xml

<string name="app_name">AlertDialog <string name="action_settings">Settings <string name="hello_world">Hello world! <string name="title_activity_positive">PositiveActivity <string name="title_activity_negative">NegativeActivity <string name="positive">Positive Activity <string name="negative">Negative Activity <string name="decision">Are you sure, you wanted to make this decision <string name="positive_button">+ive <string name="negative_button">-ive

這裏是默認的代碼 AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.yiibai.alertdialog" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.yiibai.alertdialog.MainActivity" android:label="@string/app_name" > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <activity android:name="com.yiibai.alertdialog.PositiveActivity" android:label="@string/title_activity_positive" > <activity android:name="com.yiibai.alertdialog.NegativeActivity" android:label="@string/title_activity_negative" >

從Android Studio 中運行應用程序,打開你的項目的活動文件中的一個,並在工具欄點擊運行圖標圖標。啓動應用程序之前會顯示如下窗口,選擇要運行 Android應用程序的選項。

Android

選擇移動設備作爲一個選項,然後查看移動設備將顯示如下界面:

Android

現在,輕按按鈕「hello world」看到警告框,這將是這樣的

Android

現在,選擇任意兩個按鈕中的一個,看到了各自的活動裝載啓動起來。如果選擇"positve"按鈕,此屏幕會出現

Anroid

現在按後退按鈕,這一次從警告對話框中選擇「negative」。下面的屏幕會出現在這個時間

Android

代碼下載: http://pan.baidu.com/s/1GrnOU