我剛開始在學習Dialog的時候網路上查詢到的資料大多都是AlertDilog,但我比較想做出客製化的樣子,所以就先學習這種一般的對話框,可以加入自己想要的按鈕、元件。首先,為dialog創立一個xml檔布置你想要的對話框
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="300dp"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="25dp"
android:text="會員登入"
android:textSize="25dp"
android:textColor="#ffffff"/>
<EditText
android:layout_width="300dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:hint="帳號"
android:textSize="15dp"/>
<EditText
android:layout_width="300dp"
android:layout_height="50dp"
android:maxLength="10"
android:layout_gravity="center"
android:hint="密碼"
android:textSize="15dp" />
<LinearLayout
android:layout_width="400dp"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="30dp"
android:layout_gravity="center">
<Button
android:onClick="cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="取消"
android:layout_weight="1"/>
<Button
android:onClick="login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登入"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
這是一個基本的對話框,有輸入框和按鈕
接著在主程式MainActivity加入以下程式碼
Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.dialog1); //dialog1是我上面建立xml的檔名
dialog.show(); //顯示對話框
若想在對話框內的按鈕新增功能,就能像我前面幾篇的方式寫入點擊事件做一些功能應用
public void cancel(View v){
dialog.cancel();
}
public void login(View v){
Toast.makeText(this, "登入成功", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}