Android自定义对话框

1.作用

自定义弹出的对话框,方便对对话框进行各种操作和美化对话框

2.实现步骤

2.1在layout目录下创建dialog_setup.xml文件

2.2在创建对话框的位置引用自定义的对话框

3.效果图

效果图

4.具体实现

4.1  在layout目录下创建dialog_setup.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="300dp"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    android:background="#ffffff" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#8866ff00"
        android:gravity="center"
        android:text="设置密码"
        android:textColor="#000000"
        android:textSize="18sp" />

    <EditText
        android:hint="请输入密码"
        android:textColor="#000000"
        android:id="@+id/et_password"
        android:layout_width="280dp"
        android:layout_height="wrap_content"
        android:inputType="textPassword" >
    </EditText>

    <EditText
        android:hint="请确认密码"
        android:textColor="#000000"
        android:id="@+id/et_password_confirm"
        android:layout_width="280dp"
        android:layout_height="wrap_content"
        android:inputType="textPassword" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/btn_ok"
            android:textColor="#000000"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="确定" />

        <Button
            android:id="@+id/btn_cancel"
            android:textColor="#000000"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="取消" />
    </LinearLayout>

</LinearLayout>

4.2 在创建对话框的位置引用自定义的对话框

  protected void showSetupDialog() {
  AlertDialog.Builder builder=new Builder(this);
  View view=View.inflate(getApplicationContext(), R.layout.dialog_setup, null);
  // 加载控件
  final EditText et_password=(EditText) view.findViewById(R.id.et_password);
  final EditText et_password_confirm=(EditText) view.findViewById(R.id.et_password_confirm);
  Button btn_ok=(Button) view.findViewById(R.id.btn_ok);
  Button btn_cancel=(Button) view.findViewById(R.id.btn_cancel);
  // 取消按钮的点击事件
  btn_cancel.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
              // 隐藏dialog
              dialog.dismiss();
        }
  });
  btn_ok.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
              String password=et_password.getText().toString().trim();
              String password_confirm=et_password_confirm.getText().toString().trim();
              if(!TextUtils.isEmpty(password)){
                    if(password.equals(password_confirm)){
                           // 密码设置成功
                           Editor edit = sp.edit();
                           edit.putString("password", MD5Utils.digest(password));
                           edit.commit();
                           dialog.dismiss();
                           //edit.apply()
                     }else{
                           Toast.makeText(getApplicationContext(), "两次密码不一致", 0).show();
                     }
              }else{
                    Toast.makeText(getApplicationContext(), "密码不能为空", 0).show();
              }

        }
  });


  builder.setView(view);// 设置dialog显示的view对象

  dialog = builder.create();
  dialog.show();
}

兼容低版本 **

//builder.setView(view);// 设置dialog显示的view对象
dialog = builder.create();
dialog.setView(view, 0, 0, 0, 0);
dialog.show();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值