您的位置:首页 > 移动开发 > Android开发

Android自定义对话框

2015-03-20 18:05 288 查看

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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: