1. 程式人生 > >Android中的對話方塊(AlertDialog)

Android中的對話方塊(AlertDialog)

建立android中分體式對話方塊需要四個步驟:

第一:獲得AlertDialog的靜態內部類Builder物件,有該類建立對話方塊。

第二:通過Builder物件設定對話方塊的標題,按鈕UI及將要響應的事件。、

第三:呼叫Builder的Create()方法建立對對話方塊

第四:呼叫BUILDER的show()方法顯示對話方塊。

MainActivity.java

public class MainActivity extends Activity {

	// 宣告元件
	private TextView tv;
	private Button btn;
	
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 根據Id獲取元件
		tv = (TextView) findViewById(R.id.tv);
		btn = (Button) findViewById(R.id.btn);
		
		// 在按鈕上註冊監聽器
		btn.setOnClickListener(new OnClickListener() {
			// 獲得Builder物件
			AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);			
			public void onClick(View v) {
			// 通過builder物件設定對話方塊資訊
			builder.setMessage("真的要刪除該記錄嗎?")
			// 設定確定按鈕及其相應事件處理
				.setPositiveButton("是",new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog, int which) {
								tv.setText("刪除成功!"+which);
							}
						})
				// 設定取消按鈕及其相應事件處理
				.setNegativeButton("否",new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog,int which) {
								tv.append("取消刪除?"+which);
							}
						});
				//含第3個按鈕的
			builder.setNeutralButton("忽略", new DialogInterface.OnClickListener(){
			            public void onClick(DialogInterface dialog, int which) {
				           setTitle("點選了對話方塊的忽略按鈕"+which);
			             }
    	            });
			
			// 建立對話方塊
			AlertDialog ad = builder.create();
			// 顯示對話方塊
			ad.show();
		}
	});
	}
}

 

avtivity.main



<LinearLayout 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:orientation="vertical"
    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="edu.qau.ch03_4_dialog.AlertDialog" >

    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/delete" />
        
</LinearLayout>