1. 程式人生 > >Android 自定義AlertDialog提交表單

Android 自定義AlertDialog提交表單

Android在前端的設計中,有些時候我們需要提交一些資料或表單的時候,由於資料量不是很大,我們沒有必要建立一個全新的Activity來提交很少的資料,這樣會顯得很單調,也浪費資源,其實不只是Android中這樣,網頁設計也會大量利用彈窗式對話方塊來提交一些資料。這個時候我們就可以使用自定義的AlertDialog。

1、建立AlertDialog顯示所需要的佈局檔案。這裡是一個修改密碼的佈局檔案:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="80dip"
        android:layout_marginStart="20dip"
        android:layout_marginLeft="20dip">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="密       碼:"
            />
        <EditText
            android:layout_width="220dp"
            android:inputType="textPassword"
            android:layout_height="wrap_content"
            android:id="@+id/secret"
             />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="20dip"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="確認密碼:"
            android:layout_marginStart="20dip"
            android:layout_marginLeft="20dip"
            />



        <EditText
            android:layout_width="220dp"
            android:layout_height="wrap_content"
            android:inputType="textPassword"
            android:id="@+id/confirmSecret" />
    </LinearLayout>

</LinearLayout>

2、使用該佈局檔案並建立AlertDialog:

//定義一個自定義對話方塊
AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setTitle("設定密碼");//設定標題
                View view = LayoutInflater.from(this).inflate(R.layout.activity_set_secret,null);//獲得佈局資訊
                final EditText secret = (EditText) view.findViewById(R.id.secret);
                final EditText confirmSecret = (EditText) view.findViewById(R.id.confirmSecret);
                builder.setView(view);//給對話方塊設定佈局
                builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        //點選確定按鈕的操作
                    }
                });
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                });
                builder.show();