在android应用中常常会出现使用弹窗的情况。此时用到的一个组件叫AlertDialog。但是往往AlertDialog中的内容很复杂,直接通过代码实现比较不容易,此时最好就是给这个弹窗设置一个自定义的View
- 自定义一个布局文件
- 将view设置给AlertDialog,并将其show出来
代码如下
1.布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#66ff6600"
android:gravity="center"
android:padding="10dp"
android:text="设置密码"
android:textColor="@color/black"
android:textSize="20sp" />
<EditText
android:id="@+id/et_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入密码" >
</EditText>
<EditText
android:id="@+id/et_password_confirm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请再次输入密码" >
</EditText>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/btn_ok"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="确定" />
<Button
android:id="@+id/btn_cancel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="取消" />
</LinearLayout>
</LinearLayout>
2.创建一个方法并将这个view设置给Dialog
private void showPasswordSetDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
AlertDialog dialog = builder.create();
View view = View.inflate(this, R.layout.dialog_set_password, null);
dialog.setView(view);//将自定义的布局文件设置给dialog
dialog.show();
}
以上。