Android 自定義AlertDialog提交表單
阿新 • • 發佈:2019-02-15
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();