使用AlerDialog建立對話方塊需要瞭解以下幾個方法:
setTitle():給對話方塊設定title
setIcon():給對話方塊設定表徵圖
setMessage():設定對話方塊的提示資訊
setItems():設定對話方塊要顯示的一個list,一般用於顯示幾個命令時
setSingleChoiceItems():設定對話方塊顯示一個單選的List
setMultiChoiceItems():用來設定對話方塊顯示一系列的複選框
setPositiveButton():給對話方塊添加“YES”按鈕
setNegativeButton():給對話方塊添加“NO”按鈕
MainActivity.java
package com.example.examples_04_14;import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.app.ProgressDialog;import android.content.DialogInterface;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;public class MainActivity extends Activity {ProgressDialog m_Dialog;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Dialog dialog = new AlertDialog.Builder(MainActivity.this).setTitle("登陸提示")//設定標題.setMessage("這裡需要登入!")//設定內容.setPositiveButton("確定",//設定確定按鈕new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int whichButton){//點擊“確定”轉向登陸框LayoutInflater factory = LayoutInflater.from(MainActivity.this);//得到自訂對話方塊 final View DialogView = factory.inflate(R.layout.dialog, null); //建立對話方塊 AlertDialog dlg = new AlertDialog.Builder(MainActivity.this) .setTitle("登入框") .setView(DialogView)//設定自訂對話方塊的樣式 .setPositiveButton("確定", //設定"確定"按鈕 new DialogInterface.OnClickListener() //設定事件監聽 { public void onClick(DialogInterface dialog, int whichButton) { //輸入完成後,點擊“確定”開始登陸 m_Dialog = ProgressDialog.show ( MainActivity.this, "請等待...", "正在為你登入...", true ); new Thread() { public void run() { try { sleep(3000); } catch (Exception e) { e.printStackTrace(); } finally { //登入結束,取消m_Dialog對話方塊 m_Dialog.dismiss(); } } }.start(); } }) .setNegativeButton("取消", //設定“取消”按鈕 new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { //點擊"取消"按鈕之後退出程式 MainActivity.this.finish(); } }) .create();//建立 dlg.show();//顯示}}).setNeutralButton("退出", new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int whichButton){//點擊"退出"按鈕之後推出程式MainActivity.this.finish();}}).create();//建立按鈕// 顯示對話方塊dialog.show();}}
/layout/dialog.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/username1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:text="帳號" android:gravity="left" android:textAppearance="?android:attr/textAppearanceMedium"/> <EditText android:id="@+id/username2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:scrollHorizontally="true" android:autoText="false" android:capitalize="none" android:gravity="fill_horizontal" android:textAppearance="?android:attr/textAppearanceMedium"/> <TextView android:id="@+id/passwd1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:text="密碼" android:gravity="left" android:textAppearance="?android:attr/textAppearanceMedium"/> <EditText android:id="@+id/passwd2" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:scrollHorizontally="true" android:autoText="false" android:capitalize="none" android:gravity="fill_horizontal" android:password="true" android:textAppearance="?android:attr/textAppearanceMedium"/> </LinearLayout>