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" >
<!-- title -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/dialog_title_background"
android:drawableLeft="@drawable/dialog_title_default_icon"
android:drawablePadding="3dp"
android:gravity="center_vertical"
android:padding="5dp"
android:text="初始化密码设置"
android:textSize="18sp" />
<!-- 密码框 -->
<EditText
android:id="@+id/dialog_et_pwd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:hint="请输入密码"
android:password="true"
android:singleLine="true" />
<!-- 校验框 -->
<EditText
android:id="@+id/dialog_et_confirm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:hint="请确认密码"
android:password="true"
android:singleLine="true" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:orientation="horizontal" >
<Button
android:id="@+id/dialog_btn_ok"
style="@style/DialogBtnOkStyle" />
<Button
android:id="@+id/dialog_btn_cancel"
style="@style/DialogBtnCancelStyle" />
</LinearLayout>
</LinearLayout>
2.style样式
<style name="BtnPrimayStyle">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">@drawable/btn_primary_selector</item>
<item name="android:textColor">@color/btn_primary_textcolor</item>
</style>
<style name="BtnInfoStyle">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">@drawable/btn_info_selector</item>
</style>
<style name="DialogBtnOkStyle" parent="@style/BtnPrimayStyle">
<item name="android:layout_width">0dp</item>
<item name="android:layout_marginRight">4dp</item>
<item name="android:layout_weight">1</item>
<item name="android:text">确定</item>
</style>
<style name="DialogBtnCancelStyle" parent="@style/BtnInfoStyle">
<item name="android:layout_width">0dp</item>
<item name="android:layout_marginLeft">4dp</item>
<item name="android:layout_weight">1</item>
<item name="android:text">取消</item>
</style>
3.自定义代码
private void showInitPwdDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
View view = View.inflate(this, R.layout.dialog_init_pwd, null);
final EditText etPwd = (EditText) view.findViewById(R.id.dialog_et_pwd);
final EditText etConfirm = (EditText) view
.findViewById(R.id.dialog_et_confirm);
Button btnOk = (Button) view.findViewById(R.id.dialog_btn_ok);
Button btnCancel = (Button) view.findViewById(R.id.dialog_btn_cancel);
builder.setView(view);
final AlertDialog dialog = builder.show();
// dialog显示时,软键盘需要弹出
// 获得软键盘管理者
final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);// 如果没有显示,就显示软键盘,如果显示,就隐藏软键盘
btnCancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// dialog消失
dialog.dismiss();
// 软键盘需要隐藏
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);// 如果没有显示,就显示软键盘,如果显示,就隐藏软键盘
}
});
btnOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String pwd = etPwd.getText().toString().trim();
// 非空校验
if (TextUtils.isEmpty(pwd)) {
Toast.makeText(HomeActivity.this, "密码不能为空",
Toast.LENGTH_SHORT).show();
etPwd.requestFocus();
return;
}
String confirm = etConfirm.getText().toString().trim();
// 非空校验
if (TextUtils.isEmpty(confirm)) {
Toast.makeText(HomeActivity.this, "验证密码不能为空",
Toast.LENGTH_SHORT).show();
etConfirm.requestFocus();
return;
}
// 两次密码确认
if (!pwd.equals(confirm)) {
Toast.makeText(HomeActivity.this, "两次密码不一致",
Toast.LENGTH_SHORT).show();
return;
}
// 存储密码
PreferenceUtils.putString(HomeActivity.this,
Constants.SJFD_PWD, pwd);
// dialog消失
dialog.dismiss();
// 软键盘需要隐藏
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);// 如果没有显示,就显示软键盘,如果显示,就隐藏软键盘
// 进入到设置向导页面
// Toast.makeText(HomeActivity.this, "进入到设置向导页面 ",
// Toast.LENGTH_SHORT).show();
Intent intent = new Intent(HomeActivity.this,
SjfdSetup1Activity.class);
startActivity(intent);
}
});
}